当前位置: 首页 > news >正文

用 Python Turtle 绘制经典汤姆猫:重温卡通角色的经典魅力

用 Python Turtle 绘制经典汤姆猫:重温卡通角色的经典魅力

  • 🐸 前言 🐸
  • 🐞往期绘画>>点击进所有绘画🐞
  • 🐋 效果图 🐋
  • 🐉 代码 🐉

🐸 前言 🐸

汤姆猫,这个陪伴了无数人童年的经典卡通角色,凭借着他那滑稽又机智的性格,深深印刻在了我们的记忆中。从追逐杰瑞的紧张场面到他那笨拙却又充满魅力的形象,汤姆猫一直是卡通世界的明星。在今天的教程中,我们将利用 Python 的 Turtle 模块来绘制出一个经典的 汤姆猫 形象,展现他的独特风采。
虽然汤姆猫的形象看似简单,但要通过编程来精确地呈现出他的细节和神态,仍然是一个有趣的挑战。在这个过程中,我们不仅可以通过绘图掌握 Turtle 的基本操作,还能体验到将动画角色转化为代码的乐趣。

🐞往期绘画>>点击进所有绘画🐞

序号链接
01🦖用 Python 与 Turtle 创作属于你的“冰墩墩”!🦖
02🦖用 Python 与 Turtle 创作属于你的“雪容融”!🦖
03🦖百变小樱魔法阵全解析🦖
04🦖魔法少女全解析🦖
05🦖重现汤姆劈树的经典瞬间🦖
06🐿️喜羊羊与灰太狼之喜羊羊绘画🐿️
07🐿️喜羊羊与灰太狼之懒羊羊绘画🐿️
08🐿️喜羊羊与灰太狼之沸羊羊翻身🐿️
09🐿️神奇宝贝🐿️
10⏰Q 版蜘蛛侠:代码里的超级英雄⏰
11⏰经典汤姆猫:重温卡通角色的经典魅力⏰
12⏰经典杰瑞鼠:捕捉卡通世界中的小聪明⏰
13⏰罗小黑:用代码呈现可爱与奇幻的萌宠⏰
14🎃麻衣学姐:从代码中描绘温柔的学姐形象🎃
15🎃小猪佩奇的涂鸦乐园🎃
16💥💥更多点击💥💥

🐋 效果图 🐋

在这里插入图片描述

🐉 代码 🐉

# coding=gbkimport turtledef plotLine(points, pencolor=None, width=None, speed=None):'''功能:画折线参数:- points : 一系列点,用列表或元组表示- pencolor : 画笔颜色,默认不变- width : 画笔宽度,默认不变- speed : 绘制速度,默认不变'''# 记录旧参数oldpencolor = turtle.pencolor()oldwidth = turtle.width()oldspeed = turtle.speed()# 修改新参数if pencolor is not None:turtle.pencolor(pencolor)if width is not None:turtle.width(width)if speed is not None:turtle.speed(speed)# 绘制折线turtle.up()turtle.goto(points[0])turtle.down()for point in points[1:]:turtle.goto(point)# 恢复旧参数turtle.pencolor(oldpencolor)turtle.width(oldwidth)turtle.speed(oldspeed)def plotPoly(points, fill=False, pencolor=None, fillcolor=None,width=None, speed=None):'''功能:绘制封闭多边形'''# 保存旧参数oldfillcolor = turtle.fillcolor()# 更新新参数if fillcolor is not None:turtle.fillcolor(fillcolor)# 绘制封闭多边形points_plotline = list(points) + [points[0]]if fill:turtle.begin_fill()plotLine(points_plotline, pencolor, width, speed)turtle.end_fill()else:plotLine(points_plotline, pencolor, width, speed)# 恢复旧参数turtle.fillcolor(oldfillcolor)# 设置一些参数
turtle.setup(452, 680, 100, 100)# 绘制points = [(8, 275), (6, 268), (4, 261), (1, 253), (1, 247), (-7, 245), (-14, 243), (-22, 240), (-30, 236), (-34, 233), (-39, 229), (-43, 223), (-46, 217), (-48, 212), (-50, 205), (-51, 199), (-52, 195), (-64, 195), (-68, 194), (-73, 190), (-74, 187), (-74, 177), (-72, 172), (-69, 167), (-68, 163), (-65, 159), (-62, 155), (-58, 149), (-55, 144), (-53, 140), (-50, 132), (-47, 129), (-37, 129), (-32, 125), (-27, 121), (-26, 119), (-26, 115), (-30, 112), (-34, 108), (-37, 102), (-40, 95), (-41, 81), (-44, 76), (-47, 70), (-49, 63), (-52, 56), (-53, 48), (-54, 42), (-57, 35), (-58, 27), (-59, 23), (-80, 24), (-88, 20), (-93, 14), (-96, 2), (-98, -8), (-100, -25), (-101, -35), (-103, -41), (-104, -50), (-103, -59), (-97, -64), (-91, -65), (-84, -72), (-72, -71), (-64, -67), (-59, -66), (-59, -66), (-58, -76), (-57, -87), (-79, -108), (-88, -122), (-91, -130), (-91, -130), (-90, -141), (-90, -141), (-87, -147), (-82, -153), (-76, -159), (-93, -161), (-103, -163), (-117, -158), (-124, -160), (-133, -166), (-144, -177), (-143, -191), (-141, -197), (-136, -203), (-128, -204), (-123, -205), (-123, -205), (-115, -209), (-112, -211), (-102, -212), (-95, -208), (-73, -199), (-63, -196), (-38, -194), (-31, -196), (-22, -197), (-15, -192), (-16, -185), (-17, -181), (-27, -170), (-39, -149), (-37, -147), (-26, -144), (-4, -143), (37, -158), (19, -177), (14, -179), (7, -188), (4, -193), (6, -200), (14, -204), (36, -212), (67, -227), (75, -234), (78, -241), (84, -245), (93, -248), (104, -246), (113, -242), (123, -237), (133, -229), (135, -219), (134, -204), (127, -199), (113, -197), (109, -198), (99, -192), (88, -189), (75, -185), (62, -185), (63, -182), (89, -164), (90, -160), (90, -150), (86, -139), (72, -115), (68, -107), (68, -98), (76, -91), (91, -62), (96, -54), (104, -26), (112, -10), (120, 1), (129, 10), (140, 15), (153, 20), (136, 23), (120, 22), (108, 17), (91, 4), (80, -10), (71, -23), (67, -33), (55, -47), (45, -36), (38, -19), (56, -18), (63, -15), (70, -9), (73, -3), (71, 26), (64, 52), (57, 71), (49, 86), (39, 102), (28, 116), (23, 119), (19, 120), (21, 125), (27, 130), (42, 131), (51, 130), (45, 136), (41, 138), (48, 140), (55, 137), (62, 132), (65, 130), (66, 139), (64, 150), (59, 169), (65, 169), (74, 175), (83, 184), (90, 194), (97, 209), (102, 217), (109, 225), (115, 229), (110, 233), (102, 236), (86, 240), (63, 240), (46, 235), (39, 241), (35, 248), (32, 254), (31, 248), (32, 243), (29, 249), (25, 258), (21, 263), (16, 268), (13, 271), ]
plotPoly(points, True, pencolor=(0.2, 0.2, 0.2),fillcolor=(0.33, 0.39, 0.45), width=2)points = [(-67, 181), (-67, 181), (-67, 176), (-67, 176), (-68, 167), (-68, 167), (-63, 156), (-63, 156), (-54, 144), (-54, 144), (-52, 134), (-46, 129), (-37, 130), (-34, 128), (-27, 127), (-20, 129), (-11, 134), (-3, 140), (3, 147), (8, 154), (-4, 155), (-11, 157), (-16, 160), (-20, 165), (-22, 171), (-20, 177), (-16, 183), (-9, 187), (-5, 199), (-1, 208), (-1, 220), (-7, 225), (-13, 223), (-17, 219), (-19, 221), (-21, 222), (-23, 228), (-27, 228), (-30, 225), (-35, 223), (-35, 228), (-38, 228), (-41, 225), (-45, 221), (-48, 214), (-50, 207), (-52, 196), (-51, 192), (-51, 186), (-58, 186), (-64, 184), ]
plotPoly(points, True, pencolor=(0.2, 0.2, 0.2),fillcolor=(0.85, 0.8, 0.82), width=2)turtle.up()
turtle.goto((-46, 140))
turtle.down()
turtle.pencolor((0.32, 0.24, 0.26))
turtle.dot(9)points = [(-51, 167), (-47, 170), (-44, 174), (-39, 176), (-42, 180), (-46, 182), (-49, 182), (-54, 181), (-57, 179), (-58, 176), (-56, 171), ]
plotPoly(points, True, pencolor=(0.2, 0.2, 0.2),fillcolor=(0.08, 0.09, 0.09), width=2)turtle.up()
turtle.goto((-51, 178))
turtle.down()
turtle.pencolor((1, 1, 1))
turtle.dot(5)points = [(-21, 214), (-17, 220), (-11, 223), (-7, 224), (-3, 222), (-1, 218), (-2, 208), (-4, 200), (-6, 194), (-8, 188), (-11, 185), (-16, 182), (-19, 179), (-22, 175), (-25, 177), (-29, 179), (-32, 180), (-31, 184), (-30, 190), (-29, 198), (-27, 204), (-23, 210), (-20, 216), (-15, 221), ]
plotPoly(points, True, pencolor=(0.2, 0.2, 0.2),fillcolor=(0.93, 0.84, 0.3), width=2)# 右眼
points = [(-40, 226), (-44, 220), (-47, 215), (-49, 210), (-51, 203), (-52, 195), (-51, 189), (-51, 186), (-45, 185), (-43, 191), (-41, 196), (-40, 199), (-38, 207), (-36, 213), (-35, 219), (-35, 226), (-38, 228), ]
plotPoly(points, True, pencolor=(0.2, 0.2, 0.2),fillcolor=(0.91, 0.86, 0.29), width=2)points = [(-49, 210), (-46, 211), (-43, 211), (-43, 208), (-43, 205), (-44, 201), (-45, 198), (-46, 195), (-48, 193), (-51, 194), (-51, 197), (-51, 200), (-50, 204), (-49, 207), ]
plotPoly(points, True, pencolor=(0.2, 0.2, 0.2),fillcolor=(0.05, 0.09, 0.06), width=2)# 左眼
points = [(-24, 207), (-20, 207), (-18, 205), (-17, 198), (-19, 193), (-20, 188), (-22, 185), (-23, 183), (-26, 183), (-29, 186), (-29, 191), (-29, 198), (-27, 202), ]
plotPoly(points, True, pencolor=(0.2, 0.2, 0.2),fillcolor=(0.09, 0.09, 0.05), width=2)# 双眼之间
points = [(-34, 223), (-30, 223), (-28, 227), (-24, 228), (-22, 227), (-22, 224), (-22, 222), (-19, 222), (-16, 221), (-19, 218), (-22, 213), (-24, 210), (-26, 205), (-28, 202), (-29, 199), (-30, 194), (-31, 190), (-31, 185), (-33, 182), (-36, 185), (-41, 185), (-44, 184), (-43, 190), (-42, 194), (-39, 200), (-38, 205), (-36, 212), (-35, 218), ]
plotPoly(points, True, pencolor=(0.2, 0.2, 0.2),fillcolor=(0.63, 0.62, 0.58), width=2)# 胡子
points = [(-62, 180), (-73, 187), (-81, 190), (-91, 193), (-102, 195), ]
plotLine(points, pencolor=(0.2, 0.2, 0.2), width=2)points = [(-63, 176), (-78, 175), (-86, 174), (-94, 173), (-100, 172), (-105, 171), (-110, 170), ]
plotLine(points, pencolor=(0.2, 0.2, 0.2), width=2)points = [(-30, 173), (-17, 177), (-4, 179), (6, 181), (20, 180), (31, 181), (38, 180), ]
plotLine(points, pencolor=(0.2, 0.2, 0.2), width=2)points = [(-30, 165), (-15, 165), (-4, 161), (7, 158), (16, 155), (26, 150), (34, 146), (42, 143), ]
plotLine(points, pencolor=(0.2, 0.2, 0.2), width=2)# 眉毛
points = [(-33, 234), (-30, 237), (-27, 238), (-26, 237), (-25, 236), (-24, 235), (-26, 235), (-28, 235), (-30, 235), (-31, 235), ]
plotPoly(points, True, pencolor=(0.2, 0.2, 0.2),fillcolor=(0.25, 0.25, 0.27), width=2)points = [(-11, 231), (-9, 234), (-5, 236), (1, 236), (4, 235), (7, 233), (9, 231), (10, 229), (11, 225), (11, 223), (11, 219), (10, 216), (8, 220), (7, 223), (5, 227), (4, 229), (2, 231), (-2, 231), (-6, 231), ]
plotPoly(points, True, pencolor=(0.2, 0.2, 0.2),fillcolor=(0.1, 0.13, 0.14), width=2)points = [(9, 245), (-1, 251), (-9, 254), (-16, 255), (-26, 256), (-16, 256), (-7, 255), (0, 253), (5, 251), (17, 247), (13, 252), (7, 258), (2, 262), (-5, 265), (-16, 269), (-7, 267), (0, 264), (5, 263), (11, 261), (17, 257), (22, 254), (27, 250), (29, 246), ]
plotLine(points, pencolor=(0.2, 0.2, 0.2), width=2)points = [(114, 229), (108, 233), (99, 234), (89, 235), (79, 234), (71, 232), (62, 228), (56, 223), (51, 217), (49, 212), (50, 204), (53, 199), (60, 197), (65, 199), (69, 202), (69, 199), (65, 197), (68, 193), (65, 192), (62, 193), (59, 192), (55, 190), (56, 186), (56, 182), (56, 177), (58, 173), (61, 171), (65, 170), (71, 173), (77, 178), (84, 186), (88, 193), (92, 203), (97, 211), (102, 216), (107, 224), (110, 227), ]
plotPoly(points, True, pencolor=(0.2, 0.2, 0.2),fillcolor=(0.72, 0.45, 0.54), width=2)points = [(-31, 66), (-31, 74), (-36, 79), (-42, 79), (-45, 72), (-48, 65), (-50, 57), (-52, 51), (-56, 42), (-58, 30), (-60, 18), (-61, 6), (-62, -9), (-62, -17), (-62, -28), (-62, -39), (-61, -58), (-60, -71), (-57, -87), (-51, -104), (-45, -117), (-38, -125), (-28, -133), (-12, -137), (3, -134), (17, -131), (26, -124), (32, -101), (22, -76), (14, -57), (5, -42), (0, -27), (-3, -8), (-3, 12), (-2, 27), (-1, 36), (1, 49), (-2, 64), (-15, 76), (-20, 76), (-26, 73), ]
plotPoly(points, True, pencolor=(0.2, 0.2, 0.2),fillcolor=(0.62, 0.59, 0.62), width=2)points = [(-68, 24), (-78, 25), (-85, 21), (-89, 18), (-93, 13), (-95, 6), (-96, 0), (-98, -13), (-101, -31), (-101, -36), (-103, -38), (-103, -46), (-103, -52), (-102, -59), (-98, -64), (-92, -65), (-85, -71), (-79, -72), (-71, -72), (-66, -68), (-60, -66), (-61, -52), (-62, -39), (-62, -29), (-63, -18), (-63, -8), (-61, 5), (-60, 15), (-59, 24), ]
plotPoly(points, True, pencolor=(0.2, 0.2, 0.2),fillcolor=(0.85, 0.8, 0.82), width=2)points = [(-12, 33), (-21, 33), (-32, 34), (-39, 29), (-44, 23), (-47, 13), (-49, 5), (-50, -5), (-50, -14), (-50, -23), (-52, -27), (-55, -36), (-58, -45), (-57, -55), (-49, -62), (-40, -62), (-35, -68), (-28, -71), (-21, -69), (-16, -66), (-15, -63), (-5, -63), (1, -61), (4, -58), (7, -52), (6, -38), (2, -31), (-7, -29), (-6, -20), (-6, -12), (-5, -4), (-6, 7), (-8, 11), (-4, 16), (-8, 20), (-12, 22), (-9, 26), (-10, 31), (-12, 32), (-18, 33), ]
plotPoly(points, True, pencolor=(0.2, 0.2, 0.2),fillcolor=(0.85, 0.8, 0.82), width=2)points = [(-66, 24), (-59, 24), (-60, 20), ]
plotPoly(points, True, pencolor=(0.2, 0.2, 0.2),fillcolor=(0.55, 0.55, 0.56), width=2)points = [(-66, 13), (-63, 16), (-61, 16), (-61, 10), ]
plotPoly(points, True, pencolor=(0.2, 0.2, 0.2),fillcolor=(0.4, 0.39, 0.4), width=2)points = [(-11, 33), (-8, 27), (-13, 24), (-5, 19), (-4, 13), (-8, 12), (-5, 3), (-2, -4), (0, 2), (1, 10), (1, 18), (3, 27), ]
plotPoly(points, True, pencolor=(0.34, 0.38, 0.45),fillcolor=(0.34, 0.38, 0.45), width=2)points = [(45, 30), (35, 32), (26, 32), (16, 32), (6, 32), (-11, 33), (-9, 30), (-9, 26), (-13, 24), (-9, 21), (-5, 19), (-3, 16), (-5, 14), (-9, 12), (-6, 8), (-5, 2), (-2, -5), (3, -7), (10, -10), (17, -12), (26, -15), (32, -17), (39, -18), ]
plotLine(points, pencolor=(0.2, 0.2, 0.2), width=2)points = [(14, 54), (17, 46), (20, 40), (22, 36), (23, 32), ]
plotLine(points, pencolor=(0.2, 0.2, 0.2), width=2)points = [(-98, -41), (-100, -36), ]
plotLine(points, pencolor=(0.2, 0.2, 0.2), width=2)points = [(-93, -52), (-92, -58), (-91, -64), (-89, -66), ]
plotLine(points, pencolor=(0.2, 0.2, 0.2), width=2)points = [(-77, -51), (-76, -57), (-73, -62), (-68, -65), (-65, -67), ]
plotLine(points, pencolor=(0.2, 0.2, 0.2), width=2)points = [(-45, -47), (-44, -53), (-43, -58), (-41, -63), ]
plotLine(points, pencolor=(0.2, 0.2, 0.2), width=2)points = [(-28, -48), (-25, -55), (-20, -59), (-15, -62), ]
plotLine(points, pencolor=(0.2, 0.2, 0.2), width=2)points = [(-143, -179), (-140, -174), (-136, -169), (-130, -165), (-126, -162), (-121, -159), (-113, -159), (-106, -160), (-103, -164), (-98, -163), (-93, -162), (-85, -161), (-75, -161), (-71, -161), (-68, -165), (-64, -169), (-59, -172), (-55, -177), (-50, -183), (-50, -179), (-49, -177), (-44, -179), (-45, -175), (-46, -172), (-47, -168), (-44, -167), (-40, -168), (-33, -173), (-35, -168), (-34, -166), (-31, -166), (-28, -169), (-25, -172), (-23, -175), (-19, -180), (-15, -185), (-15, -191), (-20, -196), (-23, -197), (-29, -197), (-32, -196), (-35, -194), (-40, -194), (-59, -194), (-64, -195), (-71, -198), (-77, -199), (-84, -202), (-90, -204), (-95, -208), (-103, -210), (-112, -210), (-118, -208), (-123, -205), (-126, -204), (-135, -203), (-140, -198), (-142, -193), (-143, -186), ]
plotPoly(points, True, pencolor=(0.2, 0.2, 0.2),fillcolor=(0.85, 0.8, 0.82), width=2)points = [(20, -177), (25, -176), (29, -176), (25, -182), (31, -178), (38, -178), (40, -180), (37, -184), (34, -187), (32, -189), (39, -187), (41, -189), (39, -192), (38, -196), (44, -194), (48, -191), (53, -190), (59, -187), (70, -186), (81, -186), (90, -189), (98, -192), (105, -194), (108, -197), (118, -195), (125, -198), (129, -200), (133, -204), (135, -209), (135, -217), (133, -227), (130, -231), (125, -235), (120, -238), (115, -240), (108, -245), (101, -247), (96, -247), (86, -247), (80, -243), (79, -241), (73, -234), (70, -230), (63, -227), (56, -222), (43, -217), (28, -211), (18, -207), (10, -203), (5, -196), (7, -188), (12, -183), ]
plotPoly(points, True, pencolor=(0.2, 0.2, 0.2),fillcolor=(0.84, 0.8, 0.82), width=2)points = [(-135, -167), (-130, -166), (-125, -166), (-117, -166), ]
plotLine(points, pencolor=(0.2, 0.2, 0.2), width=2)points = [(-124, -204), (-127, -199), (-128, -194), (-126, -189), (-124, -184), (-118, -181), (-110, -178), (-98, -178), ]
plotLine(points, pencolor=(0.2, 0.2, 0.2), width=2)points = [(101, -216), (108, -218), (111, -221), (114, -225), (116, -229), (115, -234), (113, -238), ]
plotLine(points, pencolor=(0.2, 0.2, 0.2), width=2)points = [(124, -206), (130, -209), (133, -214), (134, -220), ]
plotLine(points, pencolor=(0.2, 0.2, 0.2), width=2)points = [(80, -10), (83, -13), (87, -13), (91, -9), (94, -7), (92, -12), (91, -17), (91, -20), (93, -23), (96, -21), (99, -17), (100, -20), (100, -23), (100, -25), (103, -23), (106, -21), (106, -23), (108, -19), (110, -14), (114, -8), (117, -3), (122, 3), (130, 10), (137, 15), (142, 17), (148, 18), (154, 19), (152, 22), (145, 22), (136, 23), (127, 23), (122, 22), (116, 19), (108, 16), (103, 13), (97, 8), (92, 4), (87, 0), (83, -5), ]
plotPoly(points, True, pencolor=(0.2, 0.2, 0.2),fillcolor=(0.85, 0.8, 0.82), width=2)points = [(-24, 115), (-24, 114), (-24, 111), (-24, 109), (-25, 106), (-25, 104), (-26, 101), (-26, 99), ]
plotLine(points, pencolor=(0.2, 0.2, 0.2), width=2)points = [(17, 121), (13, 120), (10, 118), (6, 115), (3, 111), (2, 108), (1, 104), (1, 99), ]
plotLine(points, pencolor=(0.2, 0.2, 0.2), width=2)turtle.up()
turtle.goto((-47, 206))
turtle.down()
turtle.pencolor((1, 1, 1))
turtle.dot(5)turtle.up()
turtle.goto((-24, 201))
turtle.down()
turtle.pencolor((1, 1, 1))
turtle.dot(5)# 隐藏海龟
turtle.hideturtle()
turtle.done()

相关文章:

用 Python Turtle 绘制经典汤姆猫:重温卡通角色的经典魅力

用 Python Turtle 绘制经典汤姆猫:重温卡通角色的经典魅力 🐸 前言 🐸🐞往期绘画>>点击进所有绘画🐞🐋 效果图 🐋🐉 代码 🐉 🐸 前言 🐸 汤…...

数据结构Day4: 链表函数封装 ; 思维导图

目录 作业:实现链表剩下的操作: 任意位置删除 按位置修改 按值查找返回地址 反转 销毁 运行结果 思维导图 作业:实现链表剩下的操作: 1>任意位置删除 2>按位置修改 3>按值查找返回地址 4>反转 5>销毁 任意…...

用 Python Turtle 绘制一只可爱的小狗:用代码捕捉狗狗的萌态

用 Python Turtle 绘制一只可爱的小狗:用代码捕捉狗狗的萌态 🐸 前言 🐸🐞往期绘画>>点击进所有绘画🐞🐋 效果图 🐋🐉 代码 🐉 🐸 前言 🐸 …...

人工智能浪潮来袭:2024年技术革命与产业变革深度解析@附64页PDF文件下载

随着2024年的到来,人工智能(AI)技术正以前所未有的速度、广度和深度改变着我们的生产和生活方式。在这篇深度解析中,我们将带您一探AI技术的最新发展、产业应用的现状以及未来的安全治理趋势。 技术革命:AI技术的新范…...

python 下载 b站视频 和音频

video_bvid: import os import requests import json import re from bs4 import BeautifulSoup import subprocess # from detail_video import video_bvid# video_bvid 是一个从外部得到的单个视频ID video_bvid BV1cx421Q7veclass BilibiliVideoAudio:def __in…...

【蓝桥杯选拔赛真题93】Scratch青蛙过河 第十五届蓝桥杯scratch图形化编程 少儿编程创意编程选拔赛真题解析

目录 Scratch青蛙过河 一、题目要求 编程实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、解题思路 1、思路分析 2、详细过程 四、程序编写 五、考点分析 六、推荐资料 1、入门基础 2、蓝桥杯比赛 3、考级资料 4、视频课程 5、python资料 Scr…...

flink sink kafka的事务提交现象猜想

现象 查看flink源码时 sink kafka有事务提交机制,查看源码发现是使用两阶段提交策略,而事务提交是checkpoint完成后才执行,那么如果checkpoint设置间隔时间比较长时,事务未提交之前,后端应该消费不到数据&#xff0c…...

Oracle 临时表空间管理与最佳实践

Oracle 临时表空间管理与最佳实践 内容摘要 本文深入探讨了Oracle数据库中临时表空间的管理和最佳实践。主要内容包括: 临时表空间的概述及其在Oracle 19c多租户架构中的特点临时表空间组的优势及其创建方法非临时表空间组的临时表空间日常维护操作命令临时表空间…...

Java转C之继承和多态

在C/C中,继承和多态是面向对象编程(OOP)的两个重要特性。以下将详细讲解C/C中如何实现继承与多态,同时结合Java的对比,帮助理解两者的异同。 继承的实现 C/C中的继承 继承允许一个类(派生类/子类&#xf…...

【密码学】ZUC祖冲之算法

一、ZUC算法简介 ZUC算法(祖冲之算法)是中国自主研发的一种流密码算法,2011年被3GPP批准成为4G国际标准,主要用于无线通信的加密和完整性保护。ZUC算法在逻辑上采用三层结构设计,包括线性反馈移位寄存器(L…...

MacOS系统 快速安装appium 步骤详解

在macOS系统上,你可以通过使用nvm(Node Version Manager)来管理Node.js的版本,并基于nvm安装的Node.js环境来快捷地安装Appium。以下是具体步骤: 一、安装nvm 下载nvm 访问nvm的GitHub仓库(nvm GitHub&…...

SEGGER | 基于STM32F405 + Keil - RTT组件07 - J-Scope数据可视化,RTT方式 + DWT定时器时间戳

导言 在上一章节SEGGER | 基于STM32F405 Keil - RTT组件06 - J-Scope数据可视化,使用RTT方式的第4.3章节提到,如果消息包不包含时间戳的话,那么J-Scope的横坐标的单位时间默认是100us,说白了时间戳是假的。会导致如下问题&#x…...

机器学习支持向量机(SVM)算法

一、引言 在当今数据驱动的时代,机器学习算法在各个领域发挥着至关重要的作用。支持向量机(Support Vector Machine,SVM)作为一种强大的监督学习算法,以其在分类和回归任务中的卓越性能而备受瞩目。SVM 具有良好的泛化…...

浏览器端的 js 包括哪几个部分

一、核心语言部分 1. 变量与数据类型 变量用于存储数据,在 JavaScript 中有多种数据类型,如基本数据类型(字符串、数字、布尔值、undefined、null)和引用数据类型(对象、数组、函数)。 let name "…...

【含开题报告+文档+PPT+源码】基于SpringBoot的开放实验管理平台设计与实现

开题报告 设计开放实验管理平台的目的在于促进科学研究与教学的融合。传统实验室常常局限于特定地点和时间,而开放平台可以为学生、教师和研究人员提供一个便捷的交流与共享环境。通过在线平台,他们可以分享实验资源、交流经验,从而促进科学…...

国内可以访问的github地址

国内的IP直接访问github.com官网一般会出现无法访问或者卡顿问题,可以尝试访问下面的国内的代理网站: GitHub Build and ship software on a single, collaborative platform GitHub...

Spring 框架事务管理深度剖析

1.Spring框架的事务管理有哪些优点 pring框架的事务管理具有以下优点: 声明式事务管理:Spring支持声明式事务管理,这使得开发者可以通过配置而不是编程方式来定义事务边界。这种方式简化了事务管理代码,并且可以减少出错的机会。…...

6.1 初探MapReduce

MapReduce是一种分布式计算框架,用于处理大规模数据集。其核心思想是“分而治之”,通过Map阶段将任务分解为多个简单任务并行处理,然后在Reduce阶段汇总结果。MapReduce编程模型包括Map和Reduce两个阶段,数据来源和结果存储通常在…...

SpringBoot - 动态端口切换黑魔法

文章目录 关键技术点核心原理Code 关键技术点 利用 Spring Boot 内嵌 Servlet 容器 和 动态端口切换 的方式实现平滑更新的方案,关键技术点如下: Servlet 容器重新绑定端口:Spring Boot 使用 ServletWebServerFactory 动态设置新端口。零停…...

【Excel】单元格分列

目录 分列(新手友好) 1. 选中需要分列的单元格后,选择 【数据】选项卡下的【分列】功能。 2. 按照分列向导提示选择适合的分列方式。 3. 分好就是这个样子 智能分列(进阶) 高级分列 Tips: 新手推荐基…...

Scratch教学作品 | 3D圆柱体俄罗斯方块——旋转视角的全新挑战! ✨

今天为大家推荐一款创意十足的Scratch益智游戏——《3D圆柱体俄罗斯方块》!由Ceratophrys制作,这款作品将经典俄罗斯方块与立体圆柱舞台相结合,为玩家带来了前所未有的空间挑战与乐趣。更棒的是,这款游戏的源码可以在小虎鲸Scratc…...

智慧商城:登录页静态布局,axios请求数据切换图形验证

登录页静态布局 在src目录下新建 styles,主要用于 存放公共样式。在该文件夹下新建common.less文件,并将其在main.js中引入 将图片拷贝到src文件夹下的 assets文件夹下 完成静态布局 点击左箭头能返回到首页 所有组件头部返回左箭头颜色都是一样的&#…...

HTML知识点详解教程

文章目录 HTML知识点详解教程1. HTML基本语法2. HTML标签详解2.1 分区标签 <div>2.2 标题标签 <h1> ~ <h6>2.3 段落标签 <p>2.4 图片标签 <img>2.5 列表标签 <ul> 和 <ol>无序列表 <ul>有序列表 <ol> 2.6 超链接标签 &l…...

知识分享第二十八天-数学篇一

组合.二项式定理.常见导数 组合 让我们通过一个具体的例子来理解组合&#xff08;Combinations&#xff09;的概念 假设你有一个装有5个不同颜色球的袋子&#xff1a;红、蓝、绿、黄和紫。你想从中随机抽取3个球&#xff0c; 不考虑顺序&#xff0c;那么你可以有多少种不同的…...

搭建Tomcat(四)---Servlet容器

目录 引入 Servlet容器 一、优化MyTomcat ①先将MyTomcat的main函数搬过来&#xff1a; ②将getClass()函数搬过来 ③创建容器 ④连接ServletConfigMapping和MyTomcat 连接&#xff1a; ⑤完整的ServletConfigMapping和MyTomcat方法&#xff1a; a.ServletConfigMappin…...

P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题

题目描述 输入两个正整数 &#x1d465;0,&#x1d466;0&#xff0c;求出满足下列条件的 &#x1d443;,&#x1d444; 的个数&#xff1a; &#x1d443;,&#x1d444;是正整数。 要求 &#x1d443;,&#x1d444; 以 &#x1d465;0为最大公约数&#xff0c;以 &#x1…...

【泛微系统】自定义报表查看权限

自定义报表查询权限 前言:流程自定义报表,可查看每个报表都有哪些人有权限 --SQLserver写法 select a.id,a.workflowname,自定义报表权限 type,b.reportname,c.typename...

NPM国内镜像源多选择与镜像快速切换工具(nrm)介绍

多镜像源选择 淘宝镜像&#xff08;推荐&#xff09; 镜像地址&#xff1a;https://registry.npmmirror.com 特性&#xff1a;官方推荐&#xff0c;镜像更新速度快&#xff0c;稳定性高。 使用方式&#xff1a; npm config set registry https://registry.npmmirror.com恢复…...

详解负载均衡

什么是负载均衡&#xff1f; 想象一下&#xff0c;你有一家餐厅&#xff0c;当有很多客人同时到来时&#xff0c;如果只有一名服务员接待&#xff0c;可能会导致服务变慢。为了解决这个问题&#xff0c;你可以增加更多的服务员来分担工作&#xff0c;这样每位服务员就可以更快…...

AngularJS 与 SQL 的集成应用

AngularJS 与 SQL 的集成应用 引言 在当今的Web开发领域,AngularJS 和 SQL 是两种非常重要的技术。AngularJS,作为一个强大的前端框架,能够帮助开发者构建复杂且高性能的客户端应用。而SQL(Structured Query Language),作为一种广泛使用的数据库查询语言,是管理关系型…...

ANOMALY BERT 解读

出处&#xff1a; ICLR workshop 2023 代码&#xff1a;Jhryu30/AnomalyBERT 可视化效果&#xff1a; 一 提出动机 动机&#xff1a;无监督 TSAD 领域内&#xff0c;“训练集” 也缺失&#xff1a;真值标签&#xff08;GT&#xff09;&#xff1b;换句话说&#xff0c;一个…...

51c视觉~YOLO~合集6~

我自己的原文哦~ https://blog.51cto.com/whaosoft/12830685 一、其他yolo 1.1 Spiking-YOLO​ 使用常规深度神经网络到脉冲神经网络转换方法应用于脉冲神经网络域时&#xff0c;性能下降的很多&#xff0c;深入分析后提出了可能的解释&#xff1a;一是来自逐层归一化的效率…...

软考高级架构 —— 10.6 大型网站系统架构演化实例 + 软件架构维护

10.6 大型网站系统架构演化实例 大型网站的技术挑战主要来自于庞大的用户&#xff0c;高并发的访问和海量的数据&#xff0c;主要解决这类问题。 1. 单体架构 特点: 所有资源&#xff08;应用程序、数据库、文件&#xff09;集中在一台服务器上。适用场景: 小型网站&am…...

两数之和(Hash表)

优质博文&#xff1a;IT-BLOG-CN 一、题目 给定一个整数数组nums和一个整数目标值target&#xff0c;请你在该数组中找出"和"为目标值target的那两个整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元…...

【问题定位记录】哪些情况可能造成403

起因 403是我们平时在http请求中常见的一种错误码&#xff0c;如果有一天别人问你什么情况下可能造成403&#xff0c;我想大家都能想到的一种就是权限问题&#xff0c;比如鉴权失败会造成403。 但实际上不止这一种原因可能造成403&#xff0c;还有一种可能的原因今天就被我遇…...

SmartX分享:SMTX ZBS的纠删码EC与多副本介绍、对比与其他概念(分布式存储)

目录 背景多副本EC相关概念限制工作方式写入读取编辑故障移除硬盘、节点 EC存储配置EC推荐节点数EC的容错能力EC的数据块数k与m的互相限制 EC和多副本的对比其他涉及到全新存储分层的概念可以参考的原文链接&#xff1a; 背景 近期&#xff0c;SmartX的SMTX ZBS 分布式存储 推…...

C++并发与多线程(创建多个线程)

创建和等待多个线程 基础示例 // ConsoleApplication10.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 //#include <iostream> #include <vector> #include <map> #include <string> #include <thread> #include <…...

【开发日志】ASP.NET Core Minimal APIs开发日志

后端 实现登录注册 注册API 在数据库中存储/注册账户密码 登录API 检测接收来的账户密码&#xff0c;如果正确&#xff0c;则生成JWT Token返回给客户端 未配置密钥 报错信息,这是我在提交注册请求时&#xff0c;后端报的错&#xff0c;看起来是在生成JWT Token时出现了…...

5G学习笔记之Non-Public Network R18

只是协议的搬运工 目录 0. NPN其它笔记 1. 概述 2. R18增强 2.1 等效SNPN间的移动性管理 2.2 non-3GPP接入SNPN 2.3 Localized Service 2.4 Charging 2.5 Management 0. NPN其它笔记 1. SNPN系列ID和广播消息 1. 概述 NPN&#xff0c;Non-Public Network, 非公共网络&#xf…...

sheng的学习笔记-AI-WaveNet模型

Ai目录&#xff1a;sheng的学习笔记-AI目录-CSDN博客 需要先看一下这些文章&#xff0c;作为基础 sheng的学习笔记-AI-残差网络-Residual Networks (ResNets)_神经网络的衰变是什么-CSDN博客 sheng的学习笔记-AI-卷积神经网络_单层卷积神经网络-CSDN博客 sheng的学习笔记-T…...

0002.基于springboot +layui二手物品交易平台

适合初学同学练手项目&#xff0c;部署简单&#xff0c;代码简洁清晰&#xff1b; 注:当前项目架构使用前后端未分离哦&#xff01; 一、系统架构 前端&#xff1a;layui| html 后端&#xff1a;springboot | mybatis-plus 环境&#xff1a;jdk1.8 | mysql | maven 二、代…...

java集合基础

Java的java.util包主要提供了以下三种类型的集合&#xff1a; List&#xff1a;一种有序列表的集合&#xff0c;例如&#xff0c;按索引排列的Student的List&#xff1b;Set&#xff1a;一种保证没有重复元素的集合&#xff0c;例如&#xff0c;所有无重复名称的Student的Set&…...

如何在NGINX中实现基于IP的访问控制(IP黑白名单)?

大家好&#xff0c;我是锋哥。今天分享关于【如何在NGINX中实现基于IP的访问控制&#xff08;IP黑白名单&#xff09;&#xff1f;】面试题。希望对大家有帮助&#xff1b; 如何在NGINX中实现基于IP的访问控制&#xff08;IP黑白名单&#xff09;&#xff1f; 1000道 互联网大…...

「Mac玩转仓颉内测版51」基础篇13 - 高阶函数与闭包

本篇详细介绍高阶函数和闭包&#xff0c;这是仓颉语言中实现灵活逻辑的关键工具。高阶函数可将函数作为参数或返回值使用&#xff0c;而闭包能捕获其定义域中的变量&#xff0c;并在后续调用中保持状态。这些概念能让代码更加简洁、灵活&#xff0c;并提升复用性。 关键词 高阶…...

如何与GPT更高效的问答

与GPT进行高效沟通的关键在于提问的方式。通过合理的提问技巧&#xff0c;可以更清晰地表达需求&#xff0c;从而获得更准确的回答。以下是一些实用的建议&#xff0c;帮助你提升与GPT的交流效率。 1. 使用简单明了的语言&#xff1a; 尽量避免使用复杂的术语和行话&#xff0c…...

【Android】解决 ADB 中 SELinux 设置与 `Failed transaction (2147483646)` 错误

解决 ADB 中 SELinux 设置与 Failed transaction (2147483646) 错误 在使用 ADB 进行开发和调试时&#xff0c;经常会遇到由于 Android 系统安全策略&#xff08;SELinux&#xff09;引起的权限问题&#xff0c;尤其是在执行某些操作时&#xff0c;可能会遇到类似 cmd: Failur…...

etcd常用监控

通过部署etcd-exporterPrometheus&#xff0c;然后配置etcd相关告警可以及时发现etcd集群风险 常见监控项目 1. etcd集群无leader Etcd cluster have no leader - alert:EtcdNoLeaderexpr: etcd_server_has_leader 0 for:0mlabels:severity: criticalannotations:summary:Et…...

红日靶场vulnstack 7靶机的测试报告[细节](一)

目录 一、测试环境 1、系统环境 2、注意事项 3、使用工具/软件 二、测试目的 三、操作过程 1、信息搜集 2、Redis未授权访问漏洞获取web1靶机系统权限 3、获取docker靶机系统权限 ①Laravel框架漏洞利用getshell ②Laravel主机的提权&&docker容器逃逸 提权…...

【计算机网络】Layer4-Transport layer

目录 传输层协议How demultiplexing works in transport layer&#xff08;传输层如何进行分用&#xff09;分用&#xff08;Demultiplexing&#xff09;的定义&#xff1a;TCP/UDP段格式&#xff1a; UDPUDP的特点&#xff1a;UDP Format端口号Trivial File Transfer Protocol…...

【conda/cuda/cudnn/tensorrt】一份简洁的深度学习环境安装清单

&#x1f680;本文主要总结一下conda、cuda、cudnn、tensorrt的快速安装。至于nvidia显卡驱动的安装&#xff0c;暂且不提。本文适合有一定反复安装经验的读者&#x1f602;&#xff0c;方便其快速整理安装思路。 NVIDIA Drivers &#x1f314;01conda ⭐️ 注意&#xff0c;c…...