教你用python实现一只可爱的懒羊羊!

picture.image

点击“蓝字”关注我们吧!

picture.image

系列文章

picture.image

picture.image

序号文章目录直达链接
表白系列
1浪漫520表白代码无限弹窗!满屏表白代码来啦,快来看看吧
2满屏表白代码Python满屏表白代码
3跳动的爱心Python跳动的爱心源码
4漂浮爱心Python漂浮爱心源码
5爱心光波Python爱心光波代码
6流星雨Python流星雨源码
7玫瑰花叮咚,您的玫瑰花已送达~
节日系列
1生日快乐Python生日蛋糕代码
2圣诞节Python圣诞树源码
3中秋节中秋佳节将至,一起来赏月吧
4国庆节目光所至皆华夏,五星闪耀为信仰
5儿童节让代码创造童话,共建快乐世界
6万圣节终于要到我这只可爱鬼的节日啦!
7新年快乐Python烟花秀源码
动漫系列
1柯南真相只有一个!名侦探柯南来袭~
2皮卡丘我用python实现了三只可爱的皮卡丘!
3hellokitty粉红色限定丨你好我是HelloKitty!
4小灰灰谁会拒绝一只呆萌的小灰灰呢~
5喜羊羊我用python实现了一只呆萌的喜羊羊!
6Tom&Jerry汤姆永远抓不到杰瑞,我们的故事永远不会结束
其他
1满天星Python星星源码
2雪花代码Python雪花源码
3模拟星空Python模拟星空代码
4樱花树樱花树下的约定,是承诺也是青春
5七彩花朵Python七彩花朵代码
6恶搞代码Python恶搞代码
7代码雨三十行代码教你实现《黑客帝国》炫酷代码雨
8蝙蝠代码万圣节特辑(一)丨 一只蝙蝠的诞生!
9南瓜头万圣节特辑(二)丨 你好恶魔南瓜头!

picture.image

写在前面

picture.image

picture.image

懒大王来啦,我用python实现了一只懒羊羊~

picture.image

绘图基础

picture.image

picture.image

Python中的turtle库是一个好玩的图形库,可以帮助我们学习编程和图形设计。它非常适合初学者,因为它的语法简单易懂,而且可以让编程变得更加有趣。接下来,我们将学习如何使用turtle库进行基本的图形操作。

# 1

第一步是导入turtle库,为了使turtle能够正常工作,我们还需要运行以下命令:


            
import turtle
            
turtle.speed(0)
            
turtle.hideturtle()
        

第一个命令导入turtle库,第二个和第三个命令可以使画笔速度快到最大,同时隐藏画笔的图标。

# 2

现在让我们看看如何画一条线:


          
              

            turtle.forward(100)
          
        

这条命令将向前移动100个单位。

# 3

现在我们让它向右转90度,再画一条线:


            
turtle.right(90)
            
turtle.forward(100)
        

# 4

好的,现在我们画了一个正方形!这是如何完成的:


            
turtle.forward(100)
            
turtle.right(90)
            
turtle.forward(100)
            
turtle.right(90)
            
turtle.forward(100)
            
turtle.right(90)
            
turtle.forward(100)
            
turtle.right(90)
        

turtle.right(90)是让画笔向右旋转90度,turtle.forward(100)是向前移动100个单位。

# 5

下面来看看如何画一个圆形:


          
              

            turtle.circle(50)
          
        

这将在画布上画出一个半径为50个单位的圆形。默认情况下,turtle圆形是360度的,所以它将画出一个完整的圆形。

# 6

接下来我们画一个三角形:


            
turtle.forward(100)
            
turtle.left(120)
            
turtle.forward(100)
            
turtle.left(120)
            
turtle.forward(100)
            
turtle.left(120)
        

以上代码中,turtle.left(120)是让画笔向左旋转120度,这将使它画出三角形的下一个边缘。

# 7

我们现在来画一朵太阳花:


            
for i in range(36):
            
    turtle.forward(200)
            
    turtle.left(170)
        

以上代码中,我们使用了循环语句for i in range(36),以便将turtle行进36次。在每一步行进中,turtle向前移动200个单位,然后向左旋转170度。这将使太阳花的花瓣有着非常漂亮的形状。

# 8

最后,我们可以通过如下代码来保存你的画作:


          
              

            turtle.getcanvas().postscript(file="turtle.eps")
          
        

以上命令将保存你的画作到一个名为“turtle.eps”的文件中。当然,你也可以将其保存为其他格式,比如png、jpg等。

这就是turtle库的一些入门操作,它们可以帮助你开始探索Python编程和图形设计的神奇世界。享受你的创造过程吧!

picture.image

画懒羊羊

picture.image

picture.image

picture.image

完整程序

picture.image


            
# coding=gbk
            
import turtle
            
def plotLine(points, pencolor=None, width=None, speed=None):
            
    oldpencolor = t.pencolor()
            
    oldwidth = t.width()
            
    oldspeed = t.speed()
            
    if pencolor is not None:
            
        t.pencolor(pencolor)
            
    if width is not None:
            
        t.width(width)
            
    if speed is not None:
            
        t.speed(speed)
            
    t.up()
            
    t.goto(points[0])
            
    t.down()
            
    for point in points[1:]:
            
        t.goto(point)
            
    t.pencolor(oldpencolor)
            
    t.width(oldwidth)
            
    t.speed(oldspeed)
            
def plotPoly(points, fill=False, pencolor=None, fillcolor=None,
            
             width=None, speed=None):
            
    oldfillcolor = t.fillcolor()
            
    if fillcolor is not None:
            
        t.fillcolor(fillcolor)
            
    points_plotline = list(points) + [points[0]]
            
    if fill:
            
        t.begin_fill()
            
        plotLine(points_plotline, pencolor, width, speed)
            
        t.end_fill()
            
    else:
            
        plotLine(points_plotline, pencolor, width, speed)
            
    t.fillcolor(oldfillcolor)
            
# 脸
            
def face():
            
    points = [
            
        (-131, 76), (-121, 85), (-112, 94), (-105, 105),
            
        (-113, 109), (-105, 106), (-97, 106), (-89, 106), (-83, 110),
            
        (-77, 115), (-69, 120), (-60, 118), (-53, 117), (-44, 117),
            
        (-35, 120), (-26, 126), (-17, 122), (-10, 117), (-3, 114),
            
        (6, 111), (16, 110), (26, 112), (32, 115), (36, 117),
            
        (42, 112), (47, 107), (53, 102), (61, 98), (71, 96),
            
        (80, 96), (89, 97), (98, 99), (104, 92), (108, 86),
            
        (114, 78), (121, 71), (128, 66), (139, 62), (138, 53),
            
        (138, 42), (139, 32), (143, 25), (149, 17), (154, 9),
            
        (157, 6), (154, 2), (152, -1), (147, -5), (143, -12),
            
        (140, -20), (138, -28), (137, -38), (139, -46), (139, -52),
            
        (132, -57), (124, -63), (120, -70), (115, -76), (113, -86),
            
        (109, -96), (100, -103), (94, -111), (90, -119), (89, -125),
            
        (90, -131), (94, -137), (97, -142),
            
        (93, -149), (87, -150), (71, -153), (55, -156), (42, -156),
            
        (28, -157), (12, -157), (-2, -155), (-16, -153), (-27, -151),
            
        (-37, -147), (-50, -144), (-61, -140), (-71, -137), (-82, -133),
            
        (-91, -126), (-102, -119), (-112, -111), (-120, -102), (-127, -94),
            
        (-131, -89), (-136, -79), (-139, -71), (-141, -60), (-143, -49),
            
        (-141, -38), (-140, -27), (-138, -17), (-135, -8), (-132, 1),
            
        (-131, 11), (-132, 22), (-130, 33), (-129, 44), (-126, 55),
            
        (-123, 67), (-121, 76), (-121, 85)
            
    ]
            
    plotPoly(points, True, pencolor=(0.67, 0.5, 0.22),
            
             width=2, fillcolor=(1, 0.82, 0.71))
            
# 手
            
def hands():
            
    # 左手
            
    points = [
            
        (93, -147), (97, -143), (102, -138), (111, -134), (119, -131),
            
        (130, -128), (143, -126), (149, -120), (158, -117), (166, -113),
            
        (175, -110), (177, -103), (182, -95), (191, -89), (199, -87),
            
        (204, -85), (210, -86), (214, -88), (217, -93), (221, -96),
            
        (224, -100), (224, -104), (223, -108), (225, -112), (226, -118),
            
        (224, -124), (219, -128), (215, -129), (210, -127), (205, -123),
            
        (208, -118), (203, -114), (203, -110), (209, -109), (213, -105),
            
        (214, -130),
            
        (206, -135), (202, -137), (197, -135), (192, -132), (187, -129),
            
        (186, -132), (180, -136), (170, -140), (162, -144), (151, -149),
            
        (139, -155), (128, -159), (118, -161), (110, -162), (104, -163),
            
        (99, -160), (94, -156), (93, -150), (95, -147)
            
    ]
            
    plotPoly(points, True, pencolor=(1, 0.82, 0.71),
            
             fillcolor=(1, 0.82, 0.71), width=2)
            
    plotLine(points[:35], pencolor=(0.67, 0.5, 0.22), width=2)
            
    plotLine(points[36:], pencolor=(0.67, 0.5, 0.22), width=2)
            
    points = [
            
        (197, -119), (202, -116), (202, -111), (202, -106), (202, -102),
            
        (207, -105), (214, -104), (217, -101), (218, -99), (217, -96),
            
        (216, -93), (212, -91), (207, -88), (201, -86)
            
    ]
            
    plotLine(points, pencolor=(0.67, 0.5, 0.22), width=2)
            
    points = [
            
        (223, -111), (219, -114), (215, -117), (210, -117), (205, -117),
            
        (203, -114)
            
    ]
            
    plotLine(points, pencolor=(0.67, 0.5, 0.22), width=2)
            
    # 右手
            
    points = [
            
        (-126, -98), (-133, -94), (-141, -90), (-146, -88), (-151, -85),
            
        (-154, -78), (-157, -72), (-162, -68), (-168, -64), (-179, -61),
            
        (-184, -59), (-189, -61), (-192, -64), (-196, -69), (-199, -73),
            
        (-201, -78), (-199, -85), (-201, -93), (-200, -98), (-196, -102),
            
        (-190, -102), (-188, -106), (-184, -108), (-179, -110), (-171, -108),
            
        (-163, -103), (-165, -106), (-157, -111), (-149, -116), (-140, -120),
            
        (-131, -125), (-118, -133), (-110, -136), (-99, -139), (-97, -136),
            
        (-97, -133), (-95, -126), (-98, -123), (-104, -118), (-111, -112),
            
        (-119, -103)
            
    ]
            
    plotPoly(points, True, pencolor=(0.67, 0.5, 0.22),
            
             fillcolor=(1, 0.82, 0.71), width=2)
            
    points = [
            
        (-178, -62), (-185, -63), (-193, -67), (-194, -74), (-191, -79),
            
        (-186, -79), (-180, -78), (-179, -85), (-179, -88), (-178, -91),
            
        (-175, -93)
            
    ]
            
    plotLine(points, pencolor=(0.67, 0.5, 0.22), width=2)
            
    points = [
            
        (-192, -79), (-189, -83), (-185, -85), (-180, -83), (-179, -89),
            
        (-183, -93), (-187, -91), (-192, -90), (-198, -86)
            
    ]
            
    plotLine(points, pencolor=(0.67, 0.5, 0.22), width=2)
            
    points = [
            
        (-185, -94), (-181, -97), (-187, -102)
            
    ]
            
    plotLine(points, pencolor=(0.67, 0.5, 0.22), width=2)
            
# 肚子
            
def body():
            
    points = [
            
        (-95, -127), (-97, -135), (-96, -142), (-104, -147), (-109, -152),
            
        (-112, -156), (-116, -165), (-119, -173), (-121, -182), (-120, -188),
            
        (-117, -198), (-114, -208), (-118, -211), (-122, -218), (-123, -228),
            
        (-122, -238), (-109, -261), (-103, -266), (-103, -275), (-97, -281),
            
        (-91, -289), (-83, -292), (-74, -297), (-64, -299), (-55, -298),
            
        (-46, -295), (-40, -301), (-35, -306), (-27, -310), (-16, -312),
            
        (-8, -311), (2, -307), (6, -303), (13, -300), (20, -304),
            
        (26, -309), (34, -314), (45, -315), (55, -314), (62, -310),
            
        (70, -305), (77, -296), (89, -295), (96, -291), (103, -286),
            
        (111, -277), (113, -269), (116, -258), (116, -251), (113, -242),
            
        (119, -238), (122, -231), (125, -221), (125, -208), (123, -197),
            
        (116, -187), (116, -177), (117, -168), (117, -163), (111, -162),
            
        (102, -163), (95, -157), (93, -149), (87, -150), (78, -150),
            
        (72, -154), (60, -154), (56, -156), (54, -165), (56, -175),
            
        (54, -184), (56, -196), (53, -211), (55, -223), (54, -231),
            
        (51, -239), (44, -243), (37, -245), (34, -246), (20, -246),
            
        (5, -246), (-33, -241), (-56, -237), (-80, -233), (-90, -230),
            
        (-94, -227), (-96, -219), (-98, -210), (-95, -201), (-95, -194),
            
        (-91, -181), (-88, -163), (-82, -147), (-77, -134), (-86, -131)
            
    ]
            
    plotPoly(points, True, pencolor=(0.67, 0.5, 0.22),
            
             fillcolor=(1, 1, 1), width=2)
            
# 衣服
            
def cloth():
            
    points = [
            
        (56, -156), (54, -165), (56, -175),
            
        (54, -184), (56, -196), (53, -211), (55, -223), (54, -231),
            
        (51, -239), (44, -243), (37, -245), (34, -246), (20, -246),
            
        (5, -246), (-33, -241), (-56, -237), (-80, -233), (-90, -230),
            
        (-94, -227), (-96, -219), (-98, -210), (-95, -201), (-95, -194),
            
        (-91, -181), (-88, -163), (-82, -147), (-77, -134),
            
        (-71, -138), (-61, -141), (-51, -145), (-40, -147), (-31, -150),
            
        (-20, -152), (-9, -155), (1, -156), (12, -157), (22, -157),
            
        (34, -158), (46, -156)
            
    ]
            
    plotPoly(points, True, pencolor=(0.67, 0.5, 0.22),
            
             fillcolor=(0.97, 0.81, 0.31), width=2)
            
    points = [(-96, -212), (52, -227), (52, -234), (-95, -220)]
            
    plotPoly(points, True, pencolor=(1, 1, 1),
            
             fillcolor=(1, 1, 1), width=1)
            
    points = [(-91, -228), (45, -240)]
            
    plotLine(points, pencolor=(1, 1, 1), width=2)
            
# 腿
            
def legs():
            
    # 右腿
            
    points = [
            
        (-107, -234), (-106, -237), (-110, -239), (-114, -238), (-120, -238),
            
        (-123, -237), (-128, -239), (-134, -240), (-142, -245), (-142, -235),
            
        (-144, -231), (-147, -224), (-148, -220), (-151, -215), (-157, -209),
            
        (-164, -204), (-171, -204), (-177, -204), (-183, -205), (-188, -206),
            
        (-191, -209), (-195, -215), (-198, -219), (-199, -224), (-199, -231),
            
        (-199, -237), (-198, -244), (-198, -249), (-195, -257), (-193, -262),
            
        (-190, -267), (-186, -274), (-181, -281), (-176, -284), (-172, -285),
            
        (-163, -286), (-157, -282), (-152, -278), (-149, -273), (-146, -268),
            
        (-139, -264), (-129, -261), (-123, -261), (-111, -259), (-101, -260),
            
        (-98, -265), (-98, -260), (-101, -258), (-101, -255), (-102, -254),
            
        (-103, -249), (-100, -245), (-104, -241)
            
    ]
            
    plotPoly(points, True, pencolor=(0.67, 0.5, 0.22),
            
             fillcolor=(1, 0.82, 0.71), width=2)
            
    points = [
            
        (-188, -224), (-187, -219), (-186, -215), (-185, -212), (-182, -206)
            
    ]
            
    plotLine(points, pencolor=(0.67, 0.5, 0.22), width=2)
            
    points = [
            
        (-142, -244), (-142, -249), (-143, -256), (-144, -262), (-145, -267)
            
    ]
            
    plotLine(points, pencolor=(0.67, 0.5, 0.22), width=2)
            
    # 左腿
            
    points = [
            
        (115, -264), (123, -266), (130, -268), (135, -262), (142, -256),
            
        (151, -255), (160, -255), (165, -259), (170, -263), (175, -270),
            
        (177, -280), (180, -289), (181, -295), (180, -301), (179, -309),
            
        (175, -315), (168, -320), (162, -323), (155, -323), (147, -323),
            
        (139, -319), (135, -311), (130, -304), (129, -296), (128, -287),
            
        (132, -287), (123, -287), (115, -285), (107, -284)
            
    ]
            
    plotPoly(points, True, pencolor=(0.67, 0.5, 0.22),
            
             fillcolor=(1, 0.82, 0.71), width=2)
            
    points = [
            
        (153, -302), (154, -309), (155, -315), (158, -320), (159, -323)
            
    ]
            
    plotLine(points, pencolor=(0.67, 0.5, 0.22), width=2)
            
# 头
            
def head():
            
    points = [
            
        (-139, -80), (-147, -76), (-151, -73), (-156, -68), (-158, -64),
            
        (-161, -59), (-164, -53), (-164, -49), (-165, -41), (-165, -36),
            
        (-169, -30), (-172, -27), (-176, -17), (-177, -12), (-178, -5),
            
        (-179, -1), (-179, 7), (-177, 16), (-175, 25), (-174, 29),
            
        (-177, 34), (-179, 41), (-181, 47), (-182, 51), (-183, 59),
            
        (-183, 64), (-181, 76), (-180, 81), (-178, 88), (-174, 94),
            
        (-169, 100), (-167, 106), (-167, 114), (-167, 123), (-165, 131),
            
        (-162, 139), (-161, 144), (-154, 151), (-150, 156), (-147, 160),
            
        (-141, 164), (-135, 168), (-132, 170), (-130, 178), (-125, 189),
            
        (-122, 195), (-117, 200), (-114, 203), (-103, 212), (-95, 215),
            
        (-81, 218), (-72, 218), (-67, 223), (-63, 226), (-55, 234),
            
        (-51, 238), (-43, 243), (-36, 246), (-27, 248), (-22, 254),
            
        (-20, 261), (-15, 265), (-9, 267), (-1, 270), (5, 276),
            
        (13, 283), (22, 284), (29, 288), (37, 288), (43, 287),
            
        (50, 291), (50, 293), (59, 297), (67, 299), (76, 302),
            
        (83, 306), (90, 312), (92, 318), (100, 314), (103, 311),
            
        (109, 307), (115, 300), (120, 293), (123, 283), (123, 278),
            
        (131, 274), (140, 271), (148, 264), (152, 256), (153, 247),
            
        (152, 242), (160, 240), (165, 233), (171, 224), (182, 217),
            
        (187, 213), (192, 207), (195, 202), (199, 195), (200, 189),
            
        (207, 187), (216, 183), (224, 179), (264, 118), (271, 112),
            
        (277, 103), (280, 93), (280, 85), (282, 77), (282, 68),
            
        (279, 60), (279, 54), (279, 44), (284, 36), (286, 27),
            
        (286, 13), (289, 3), (286, -8), (283, -15), (279, -23),
            
        (275, -30), (269, -36), (271, -42), (272, -50), (269, -57),
            
        (268, -65), (267, -69), (265, -75), (263, -80), (258, -85),
            
        (254, -91), (249, -94), (242, -102), (235, -106), (223, -111)
            
    ]
            
 
            
    plotLine(points, pencolor=(0.67, 0.5, 0.22), width=2)
            
    points = [
            
        (-27, 248), (-24, 242), (-21, 237), (-18, 232), (-13, 229),
            
        (-9, 227), (-2, 224)
            
    ]
            
    plotLine(points, pencolor=(0.67, 0.5, 0.22), width=2)
            
    points = [
            
        (1, 269), (6, 265), (11, 258), (16, 253), (24, 249),
            
        (30, 248), (37, 245), (47, 245)
            
    ]
            
    plotLine(points, pencolor=(0.67, 0.5, 0.22), width=2)
            
    points = [
            
        (45, 286), (46, 280), (48, 275), (53, 271), (62, 267)
            
    ]
            
    plotLine(points, pencolor=(0.67, 0.5, 0.22), width=2)
            
    points = [
            
        (123, 276), (121, 273), (115, 270), (112, 268), (105, 266),
            
        (98, 266)
            
    ]
            
    plotLine(points, pencolor=(0.67, 0.5, 0.22), width=2)
            
    points = [
            
        (152, 244), (146, 239), (138, 235), (128, 236), (117, 236),
            
        (104, 237)
            
    ]
            
    plotLine(points, pencolor=(0.67, 0.5, 0.22), width=2)
            
    points = [
            
        (168, 223), (168, 217), (163, 210), (159, 205), (154, 203),
            
        (143, 202), (137, 201), (131, 201)
            
    ]
            
    plotLine(points, pencolor=(0.67, 0.5, 0.22), width=2)
            
# 羊角
            
def horns():
            
    # 羊角(左)
            
    points = [
            
        (194, 169), (201, 165), (209, 171), (216, 176), (224, 181),
            
        (231, 184), (244, 188), (258, 192), (271, 194), (281, 194),
            
        (288, 192), (296, 191), (301, 189), (306, 188), (311, 185),
            
        (316, 182), (318, 177), (319, 172), (317, 168), (313, 163),
            
        (311, 160), (310, 158), (306, 153), (300, 151), (293, 148),
            
        (291, 145), (285, 141), (281, 139), (278, 136), (275, 132),
            
        (272, 127), (268, 123), (265, 118), (257, 113), (251, 105),
            
        (254, 102), (257, 96), (254, 102), (251, 106), (245, 109),
            
        (238, 105), (237, 110), (236, 118), (233, 124), (229, 129),
            
        (225, 131), (219, 132), (216, 132), (215, 135), (215, 139),
            
        (216, 148), (215, 150), (214, 154), (209, 160), (205, 162)
            
    ]
            
    plotPoly(points, True, pencolor=(0.67, 0.5, 0.22),
            
             fillcolor=(0.51, 0.37, 0.28), width=2)
            
    # 羊角(右)
            
    points = [
            
        (-119, 201), (-122, 205), (-124, 211), (-128, 216), (-135, 223),
            
        (-139, 232), (-140, 240), (-141, 249), (-137, 254), (-129, 256),
            
        (-119, 257), (-110, 256), (-98, 253), (-90, 250), (-81, 246),
            
        (-74, 242), (-66, 237), (-59, 230), (-62, 225), (-71, 217),
            
        (-82, 217), (-94, 215), (-104, 211), (-111, 204)
            
    ]
            
    plotPoly(points, True, pencolor=(0.67, 0.5, 0.22),
            
             fillcolor=(0.51, 0.37, 0.28), width=2)
            
# 耳朵
            
def ears():
            
    # 耳朵(左)
            
    points = [
            
        (229, 68), (233, 70), (242, 70), (250, 69), (257, 65),
            
        (263, 58), (269, 51), (274, 44), (278, 38), (282, 31),
            
        (288, 25), (294, 20), (296, 19), (293, 16), (285, 12),
            
        (281, 9), (274, 7), (267, 6), (262, 6), (252, 6),
            
        (241, 9), (234, 12), (228, 18), (221, 29), (217, 40),
            
        (218, 52), (220, 60), (225, 64)
            
    ]
            
    plotPoly(points, True, pencolor=(0.67, 0.5, 0.22),
            
             fillcolor=(1, 0.82, 0.72), width=2)
            
    # 耳朵(右)
            
    points = [
            
        (-165, 112), (-174, 109), (-179, 106), (-187, 103), (-188, 101),
            
        (-185, 97), (-182, 91), (-178, 88), (-176, 90), (-174, 92),
            
        (-167, 99), (-165, 102), (-165, 108)
            
    ]
            
    plotPoly(points, True, pencolor=(0.67, 0.5, 0.22),
            
             fillcolor=(1, 0.82, 0.72), width=2)
            
# 眼睛
            
def eyes():
            
    # 眼睛(右)
            
    t.color((0.67, 0.5, 0.22), (1, 1, 1))
            
    t.width(2)
            
    t.up()
            
    t.goto(-71, 8)
            
    t.down()
            
    t.begin_fill()
            
    t.circle(30)
            
    t.end_fill()
            
    t.pencolor((0.1, 0.1, 0.1))
            
    t.up()
            
    t.goto(-71, 37)
            
    t.down()
            
    t.dot(25)
            
    t.pencolor((1, 1, 1))
            
    t.up()
            
    t.goto((-74, 41))
            
    t.down()
            
    t.dot(9)
            
    # 眼睛(左)
            
    t.color((0.67, 0.5, 0.22), (1, 1, 1))
            
    t.up()
            
    t.goto(36, -12)
            
    t.down()
            
    t.begin_fill()
            
    t.circle(30)
            
    t.end_fill()
            
    t.pencolor((0.1, 0.1, 0.1))
            
    t.up()
            
    t.goto(39, 18)
            
    t.down()
            
    t.dot(25)
            
    t.pencolor((1, 1, 1))
            
    t.up()
            
    t.goto((34, 22))
            
    t.down()
            
    t.dot(9)
            
# 眉毛
            
def eyebrows():
            
    # 眉毛(左)
            
    points = [
            
        (-82, 89), (-78, 92), (-74, 95), (-67, 97), (-60, 97),
            
        (-54, 95), (-48, 93), (-45, 91), (-41, 89), (-38, 86),
            
        (-35, 83)
            
    ]
            
    plotLine(points, (0.67, 0.5, 0.22), width=2)
            
    # 眉毛(右)
            
    points = [
            
        (22, 74), (26, 77), (31, 80), (40, 82), (48, 82),
            
        (55, 80), (63, 78), (70, 74), (75, 70), (79, 65)
            
    ]
            
    plotLine(points, (0.67, 0.5, 0.22), width=2)
            
# 鼻子
            
def nose():
            
    points = [
            
        (-39, 2), (-46, 0), (-52, -2), (-55, -6), (-56, -10),
            
        (-56, -14), (-55, -17), (-52, -20), (-48, -23), (-44, -25),
            
        (-40, -26), (-35, -27), (-30, -28), (-24, -27), (-21, -26),
            
        (-17, -23), (-15, -21), (-14, -17), (-14, -12), (-15, -9),
            
        (-20, -4), (-22, -3), (-26, -1), (-30, 0), (-33, 1)
            
    ]
            
    plotPoly(points, True, pencolor=(0.2, 0.14, 0.11),
            
             fillcolor=(0.2, 0.14, 0.11), width=2)
            
    t.pencolor((1, 1, 1))
            
    t.up()
            
    t.goto((-22, -12))
            
    t.down()
            
    t.dot(10)
            
# 嘴巴
            
def mouth():
            
    points = [
            
        (-71, -44), (-69, -48), (-63, -53), (-64, -56), (-66, -66),
            
        (-65, -78), (-65, -87), (-62, -92), (-59, -99), (-56, -103),
            
        (-50, -106), (-47, -109), (-39, -111), (-29, -111), (-23, -110),
            
        (-18, -108), (-13, -105), (-10, -102), (-6, -97), (-1, -90),
            
        (2, -83), (5, -75), (6, -69), (6, -60), (11, -65),
            
        (7, -61), (5, -58), (3, -53), (5, -58), (2, -58),
            
        (-5, -60), (-9, -60), (-14, -62), (-20, -62), (-25, -60),
            
        (-34, -60), (-43, -59), (-52, -57), (-58, -55), (-62, -54),
            
        (-67, -49)
            
    ]
            
    plotPoly(points, True, pencolor=(0.67, 0.5, 0.22),
            
             fillcolor=(0.89, 0.48, 0.43), width=2)
            
    points = [
            
        (-62, -54), (-60, -55), (-57, -55), (-54, -57), (-49, -58),
            
        (-47, -60), (-50, -61), (-55, -63), (-59, -67), (-64, -72),
            
        (-65, -75), (-66, -69), (-65, -60)
            
    ]
            
    plotPoly(points, True, pencolor=(0.67, 0.5, 0.22),
            
             fillcolor=(0.63, 0.24, 0.25), width=0)
            
if __name__ == "__main__":
            
    turtle.setup(1.0, 1.0)
            
    turtle.title("懒羊羊")
            
    t = turtle.Turtle()
            
    t.screen.delay(0)
            
    t.hideturtle()
            
    face()
            
    hands()
            
    body()
            
    cloth()
            
    legs()
            
    head()
            
    horns()
            
    ears()
            
    eyes()
            
    eyebrows()
            
    nose()
            
    mouth()
            
    turtle.mainloop()
        

picture.image

程序分析

picture.image

picture.image

以上代码是使用turtle库绘制一个“懒羊羊”的图案。下面是每个部分的具体分析:

  1. turtle.setup(1.0, 1.0):这将设置屏幕的大小比例为1:1,即创建一个正方形的画布,方便绘制。

  2. turtle.title("懒羊羊"):这将为窗口添加一个标题,标题为“懒羊羊”。

  3. t = turtle.Turtle():这将创建一个名为t的turtle对象,它将用于绘制图案。

  4. t.screen.delay(0):这将设置turtle对象绘制时的延迟时间为0,即不延迟。

  5. t.hideturtle():这将隐藏turtle对象的箭头图标,使其看起来更自然。

  6. face():这是一个自定义函数,用于绘制整个图案中的“脸”部分。

  7. hands():这是一个自定义函数,用于绘制整个图案中的“手”部分。

  8. body():这是一个自定义函数,用于绘制整个图案中的“身体”部分。

  9. cloth():这是一个自定义函数,用于绘制整个图案中的“衣服”部分。

  10. legs():这是一个自定义函数,用于绘制整个图案中的“腿”部分。

  11. head():这是一个自定义函数,用于绘制整个图案中的“头”部分。

  12. horns():这是一个自定义函数,用于绘制整个图案中的“角”部分。

  13. ears():这是一个自定义函数,用于绘制整个图案中的“耳朵”部分。

  14. eyes():这是一个自定义函数,用于绘制整个图案中的“眼睛”部分。

  15. eyebrows():这是一个自定义函数,用于绘制整个图案中的“眉毛”部分。

  16. nose():这是一个自定义函数,用于绘制整个图案中的“鼻子”部分。

  17. mouth():这是一个自定义函数,用于绘制整个图案中的“嘴巴”部分。

  18. turtle.mainloop():这将保持窗口一直运行,直到用户关闭它。

picture.image

运行结果

picture.image

picture.image

picture.image

写在后面

picture.image

picture.image

我是一只有趣的兔子,感谢你的喜欢!

0
0
0
0
评论
未登录
暂无评论