文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么用python turtle库画圣诞树

2023-06-22 04:49

关注

本篇内容主要讲解“怎么用python turtle库画圣诞树”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用python turtle库画圣诞树”吧!

首先我们的目标是这样子的:

怎么用python turtle库画圣诞树

那么他有什么成分呢?有圣诞树的本体、大小蝴蝶结、星星、圣诞帽和袜子。

首先我们来画圣诞树的本体。

1. 圣诞树的本体

圣诞树本体是这样子的:

怎么用python turtle库画圣诞树

代码:

class TreeBackBone():    def __init__(self):        pencolor("pink")        pensize(10)        self.layer1()        self.layer2()        self.layer3()        self.layer4()        self.trunk()    def layer1(self):        penup()        hideturtle()        goto(0, 150)        showturtle()        pendown()        shape(name="classic")        seth(-120)        for i in range(10):            fd(12)            right(2)        penup()        goto(0, 150)        seth(-60)        pendown()        for i in range(10):            fd(12)            left(2)        seth(-150)        penup()        fd(10)        pendown()        for i in range(5):            fd(10)            right(15)        seth(-150)        penup()        fd(8)        pendown()        for i in range(5):            fd(10)            right(15)        seth(-155)        penup()        fd(5)        pendown()        for i in range(5):            fd(7)            right(15)    def layer2(self):        penup()        goto(-55, 34)        pendown()        seth(-120)        for i in range(10):            fd(8)            right(5)        penup()        goto(50, 35)        seth(-60)        pendown()        for i in range(10):            fd(8)            left(5)        seth(-120)        penup()        fd(10)        seth(-145)        pendown()        for i in range(5):            fd(10)            right(15)        penup()        fd(10)        seth(-145)        pendown()        for i in range(5):            fd(12)            right(15)        penup()        fd(8)        seth(-145)        pendown()        for i in range(5):            fd(10)            right(15)        penup()        seth(-155)        fd(8)        pendown()        for i in range(5):            fd(11)            right(15)    def layer3(self):        penup()        goto(-100, -40)        seth(-120)        pendown()        for i in range(10):            fd(6)            right(3)        penup()        goto(80, -39)        seth(-50)        pendown()        for i in range(10):            fd(6)            left(3)        seth(-155)        penup()        fd(10)        pendown()        for i in range(5):            fd(8)            right(10)        penup()        fd(8)        seth(-145)        pendown()        for i in range(7):            fd(8)            right(10)        penup()        fd(8)        seth(-145)        pendown()        for i in range(7):            fd(7)            right(10)        penup()        fd(8)        seth(-145)        pendown()        for i in range(7):            fd(7)            right(10)        penup()        fd(8)        seth(-140)        pendown()        for i in range(7):            fd(6)            right(10)    def layer4(self):        penup()        goto(-120, -95)        seth(-130)        pendown()        for i in range(7):            fd(10)            right(5)        penup()        goto(100, -95)        seth(-50)        pendown()        for i in range(7):            fd(10)            left(5)        penup()        seth(-120)        fd(10)        seth(-155)        pendown()        for i in range(6):            fd(8)            right(10)        penup()        seth(-160)        fd(10)        seth(-155)        pendown()        for i in range(6):            fd(8)            right(10)        penup()        seth(-160)        fd(10)        seth(-155)        pendown()        for i in range(6):            fd(8)            right(10)        penup()        seth(-160)        fd(10)        seth(-160)        pendown()        for i in range(6):            fd(8)            right(10)        penup()        seth(-160)        fd(10)        seth(-160)        pendown()        for i in range(6):            fd(8)            right(10)        penup()        seth(-160)        fd(10)        seth(-165)        pendown()        for i in range(5):            fd(10)            right(11)    def trunk(self):        penup()        goto(-70, -165)        seth(-85)        pendown()        for i in range(3):            fd(5)            left(3)        penup()        goto(70, -165)        seth(-95)        pendown()        for i in range(3):            fd(5)            right(3)        seth(-170)        penup()        fd(10)        pendown()        pendown()        for i in range(10):            fd(12)            right(2)        penup()        goto(70, -165)        pendown()        seth(-90)        pensize(8)        pencolor("#de8891")        circle(-20, 90)        penup()        goto(30, -185)        pendown()        seth(-180)        pensize(8)        pencolor("#de8891")        fd(40)        penup()        goto(-5, -170)        pendown()        seth(-180)        pensize(8)        pencolor("#de8891")        fd(35)        right_up(-70, -150, 160)        right_up(100, -150, 160)        right_down(110, -110, 50)        right_up(160, -140, 150)        clockwise(80, -120, 180)        right_up(70, -85, 165)        right_up(-40, -85, 165)        right_down(90, -50, 50)        right_up(130, -80, 150)        pencolor("pink")        clockwise(-40, -60, 180)        pencolor('#de8891')        clockwise(80, -30, 180)        pencolor("pink")        clockwise(40, 10, 180)        pencolor("#de8891")        right_up(-60, 30, 120)        right_up(-20, -20, 150)        right_down(45, 40, 60)        right_up(-30, 40, 170)        right_up(-30, 110, 115)        right_down(40, 90, 60)        right_up(80, 50, 160)        pencolor("#de8891")

2. 蝴蝶结

接下来让我们绘制作为装饰的小蝴蝶结,每个蝴蝶结长这个亚子~

怎么用python turtle库画圣诞树

代码:

def basebowknot(x, y):    penup()    goto(x, y)    seth(80)    pendown()    pensize(2)    circle(5)    seth(10)    fd(15)    seth(120)    fd(20)    seth(240)    fd(20)    seth(180)    fd(20)    seth(-60)    fd(20)    seth(50)    fd(20)    seth(-40)    fd(30)    seth(-130)    fd(5)    seth(135)    fd(30)    seth(-60)    fd(30)    seth(-150)    fd(6)    seth(110)    fd(30)

3. 星星

接下来我们绘制闪闪发光的小星星,长这个亚子~

怎么用python turtle库画圣诞树

代码:

def star(x, y, size):    pensize(2)    pencolor("black")    penup()    goto(x, y)    pendown()    begin_fill()    fillcolor("yellow")    for i in range(5):        left(72)        fd(size)        right(144)        fd(size)    end_fill()

4. 圣诞帽

接下来我们绘制灰常具有节日气息的圣诞帽,长这个亚子~

怎么用python turtle库画圣诞树

代码:

def christmashats(self):        seth(0)        pink_anticlockwise(35, 145, 100)        pink_anticlockwise(-7, 145, 110)        pencolor("red")        pensize(7)        penup()        goto(-35, 135)        pendown()        seth(-20)        pensize(2)        penup()        goto(-30, -120)        pencolor("black")        pendown()        fillcolor("red")        fd(30)        circle(4, 180)        fd(30)        circle(4, 180)        penup()        goto(-25, -115)        seth(75)        pendown()        begin_fill()        for i in range(5):            fd(6)            right(20)        seth(-10)        for i in range(5):            fd(8)            right(15)        seth(145)        for i in range(5):            fd(5)            left(2)        seth(90)        for i in range(5):            fd(1)            left(2)        seth(-90)        for i in range(4):            fd(4)            right(6)        seth(161)        fd(30)        end_fill()        pensize(1)        pencolor("black")

5. 圣诞袜

最后是用来装圣诞老人礼物的圣诞袜哟~

怎么用python turtle库画圣诞树

代码:

def socks(self):        seth(-20)        pensize(2)        penup()        goto(-20, 80)        pencolor("black")        pendown()        fillcolor("red")        fd(25)        circle(4, 180)        fd(25)        circle(4, 180)        penup()        goto(-15, 80)        pendown()        begin_fill()        fillcolor("red")        seth(-120)        fd(20)        seth(150)        fd(5)        circle(7, 180)        fd(15)        circle(5, 90)        fd(30)        seth(160)        fd(18)        end_fill()

至此,我们的圣诞树就全部画完啦!

6. 最后奉上完整代码

from turtle import *import timeclass TreeBackBone():    def __init__(self):        pencolor("Green")        pensize(10)        self.layer1()        self.layer2()        self.layer3()        self.layer4()        self.trunk()    def layer1(self):        penup()        hideturtle()        goto(0, 150)        showturtle()        pendown()        shape(name="classic")        seth(-120)        for i in range(10):            fd(12)            right(2)        penup()        goto(0, 150)        seth(-60)        pendown()        for i in range(10):            fd(12)            left(2)        seth(-150)        penup()        fd(10)        pendown()        for i in range(5):            fd(10)            right(15)        seth(-150)        penup()        fd(8)        pendown()        for i in range(5):            fd(10)            right(15)        seth(-155)        penup()        fd(5)        pendown()        for i in range(5):            fd(7)            right(15)    def layer2(self):        penup()        goto(-55, 34)        pendown()        seth(-120)        for i in range(10):            fd(8)            right(5)        penup()        goto(50, 35)        seth(-60)        pendown()        for i in range(10):            fd(8)            left(5)        seth(-120)        penup()        fd(10)        seth(-145)        pendown()        for i in range(5):            fd(10)            right(15)        penup()        fd(10)        seth(-145)        pendown()        for i in range(5):            fd(12)            right(15)        penup()        fd(8)        seth(-145)        pendown()        for i in range(5):            fd(10)            right(15)        penup()        seth(-155)        fd(8)        pendown()        for i in range(5):            fd(11)            right(15)    def layer3(self):        penup()        goto(-100, -40)        seth(-120)        pendown()        for i in range(10):            fd(6)            right(3)        penup()        goto(80, -39)        seth(-50)        pendown()        for i in range(10):            fd(6)            left(3)        seth(-155)        penup()        fd(10)        pendown()        for i in range(5):            fd(8)            right(10)        penup()        fd(8)        seth(-145)        pendown()        for i in range(7):            fd(8)            right(10)        penup()        fd(8)        seth(-145)        pendown()        for i in range(7):            fd(7)            right(10)        penup()        fd(8)        seth(-145)        pendown()        for i in range(7):            fd(7)            right(10)        penup()        fd(8)        seth(-140)        pendown()        for i in range(7):            fd(6)            right(10)    def layer4(self):        penup()        goto(-120, -95)        seth(-130)        pendown()        for i in range(7):            fd(10)            right(5)        penup()        goto(100, -95)        seth(-50)        pendown()        for i in range(7):            fd(10)            left(5)        penup()        seth(-120)        fd(10)        seth(-155)        pendown()        for i in range(6):            fd(8)            right(10)        penup()        seth(-160)        fd(10)        seth(-155)        pendown()        for i in range(6):            fd(8)            right(10)        penup()        seth(-160)        fd(10)        seth(-155)        pendown()        for i in range(6):            fd(8)            right(10)        penup()        seth(-160)        fd(10)        seth(-160)        pendown()        for i in range(6):            fd(8)            right(10)        penup()        seth(-160)        fd(10)        seth(-160)        pendown()        for i in range(6):            fd(8)            right(10)        penup()        seth(-160)        fd(10)        seth(-165)        pendown()        for i in range(5):            fd(10)            right(11)    def trunk(self):        penup()        goto(-70, -165)        seth(-85)        pendown()        for i in range(3):            fd(5)            left(3)        penup()        goto(70, -165)        seth(-95)        pendown()        for i in range(3):            fd(5)            right(3)        seth(-170)        penup()        fd(10)        pendown()        pendown()        for i in range(10):            fd(12)            right(2)        penup()        goto(70, -165)        pendown()        seth(-90)        pensize(8)        pencolor("DarkSeaGreen")        circle(-20, 90)        penup()        goto(30, -185)        pendown()        seth(-180)        pensize(8)        pencolor("DarkSeaGreen")        fd(40)        penup()        goto(-5, -170)        pendown()        seth(-180)        pensize(8)        pencolor("DarkSeaGreen")        fd(35)        right_up(-70, -150, 160)        right_up(100, -150, 160)        right_down(110, -110, 50)        right_up(160, -140, 150)        clockwise(80, -120, 180)        right_up(70, -85, 165)        right_up(-40, -85, 165)        right_down(90, -50, 50)        right_up(130, -80, 150)        pencolor("Green")        clockwise(-40, -60, 180)        pencolor('DarkSeaGreen')        clockwise(80, -30, 180)        pencolor("Green")        clockwise(40, 10, 180)        pencolor("DarkSeaGreen")        right_up(-60, 30, 120)        right_up(-20, -20, 150)        right_down(45, 40, 60)        right_up(-30, 40, 170)        right_up(-30, 110, 115)        right_down(40, 90, 60)        right_up(80, 50, 160)        pencolor("DarkSeaGreen")class ChristmasTree():    def __init__(self):        setup(500, 500, startx=None, starty=None)        speed(0)        TreeBackBone()        pencolor("#de8891")        self.small_bowknots()        self.big_bowknots()        self.christmashats()        self.stars()        self.socks()        penup()        seth(0)        goto(100, -230)        pendown()        write("Merry Christmas ", align="center", font=("Comic Sans MS", 24, "bold"))        done()    def small_bowknots(self):        seth(0)        unit(40, -160)        basebowknot(-80, -120)        red_anticlockwise(-67, -115, 120)        red_anticlockwise(-86, -123, 150)        basebowknot(40, -50)        red_anticlockwise(52, -45, 130)        red_anticlockwise(34, -55, 160)        seth(0)        unit(-20, -60)        red_anticlockwise(-4, -60, 100)        red_anticlockwise(-20, -60, 120)        basebowknot(-30, 20)        red_anticlockwise(-15, 25, 130)        red_anticlockwise(-40, 20, 180)        unit(30, 70)        red_anticlockwise(45, 70, 100)        red_anticlockwise(30, 70, 120)    def big_bowknots(self):        pencolor("red")        pensize(5)        penup()        seth(0)        goto(0, 150)        pendown()        circle(10)        seth(-15)        fd(40)        seth(90)        fd(40)        seth(200)        fd(40)        seth(160)        fd(40)        seth(-90)        fd(40)        seth(15)        fd(40)        seth(-70)        pencolor("red")        pensize(4)        fd(40)        seth(-180)        fd(10)        seth(100)        fd(40)        seth(-100)        fd(40)        seth(-180)        fd(10)        seth(70)        fd(40)        penup()        seth(0)        goto(0, 130)        pencolor("pink")        pendown()    def christmashats(self):        seth(0)        pink_anticlockwise(35, 145, 100)        pink_anticlockwise(-7, 145, 110)        pencolor("red")        pensize(7)        penup()        goto(-35, 135)        pendown()        seth(-20)        pensize(2)        penup()        goto(-30, -120)        pencolor("black")        pendown()        fillcolor("red")        fd(30)        circle(4, 180)        fd(30)        circle(4, 180)        penup()        goto(-25, -115)        seth(75)        pendown()        begin_fill()        for i in range(5):            fd(6)            right(20)        seth(-10)        for i in range(5):            fd(8)            right(15)        seth(145)        for i in range(5):            fd(5)            left(2)        seth(90)        for i in range(5):            fd(1)            left(2)        seth(-90)        for i in range(4):            fd(4)            right(6)        seth(161)        fd(30)        end_fill()        pensize(1)        pencolor("black")    def stars(self):        seth(-15)        star(-120, -70, 10)        seth(10)        star(100, -20, 10)        seth(-10)        star(10, 40, 10)        seth(30)        star(-80, 60, 10)        star(100, -150, 10)        star(-140, -150, 10)        star(20, 120, 10)    def socks(self):        seth(-20)        pensize(2)        penup()        goto(-20, 80)        pencolor("black")        pendown()        fillcolor("red")        fd(25)        circle(4, 180)        fd(25)        circle(4, 180)        penup()        goto(-15, 80)        pendown()        begin_fill()        fillcolor("red")        seth(-120)        fd(20)        seth(150)        fd(5)        circle(7, 180)        fd(15)        circle(5, 90)        fd(30)        seth(160)        fd(18)        end_fill()def basebowknot(x, y):    penup()    goto(x, y)    seth(80)    pendown()    pensize(2)    circle(5)    seth(10)    fd(15)    seth(120)    fd(20)    seth(240)    fd(20)    seth(180)    fd(20)    seth(-60)    fd(20)    seth(50)    fd(20)    seth(-40)    fd(30)    seth(-130)    fd(5)    seth(135)    fd(30)    seth(-60)    fd(30)    seth(-150)    fd(6)    seth(110)    fd(30)def right_up(x, y, z):    penup()    goto(x, y)    seth(-z)    pendown()    for angel in range(5):        fd(10)        right(10)def right_down(x, y, z):    penup()    goto(x, y)    seth(-z)    pendown()    for angel in range(5):        fd(10)        left(10)def clockwise(x, y, z):    penup()    goto(x, y)    seth(-z)    pendown()    for angel in range(5):        fd(6)        right(10)    seth(-150)    fd(20)def unit(x, y):    penup()    goto(x, y)    pendown()    pensize(2)    circle(5)    seth(-10)    fd(15)    seth(90)    fd(15)    seth(200)    fd(15)    seth(160)    fd(15)    seth(-90)    fd(15)    seth(10)    fd(15)    seth(-60)    fd(20)    seth(-180)    fd(5)    seth(110)    fd(20)    seth(-90)    fd(20)    seth(-180)    fd(6)    seth(70)    fd(15)    hideturtle()def red_anticlockwise(x, y, z):    penup()    goto(x, y)    pendown()    seth(z)    for po in range(5):        fd(4)        left(36)def pink_anticlockwise(x, y, z):    penup()    goto(x, y)    pencolor("red")    pendown()    seth(z)    for po in range(10):        fd(4)        left(18)def star(x, y, size):    pensize(2)    pencolor("black")    penup()    goto(x, y)    pendown()    begin_fill()    fillcolor("yellow")    for i in range(5):        left(72)        fd(size)        right(144)        fd(size)    end_fill()if __name__ == '__main__':    ChristmasTree()

到此,相信大家对“怎么用python turtle库画圣诞树”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯