• 【Python】绘制哆啦A梦


    代码:

    from turtle import *
    
    
    # 无轨迹跳跃
    def my_goto(x, y):
        penup()
        goto(x, y)
        pendown()
    
    # 眼睛
    def eyes():
        fillcolor("#ffffff")
        begin_fill()
    
        tracer(False)
        a = 2.5
        for i in range(120):
            if 0 <= i < 30 or 60 <= i < 90:
                a -= 0.05
                lt(3)
                fd(a)
            else:
                a += 0.05
                lt(3)
                fd(a)
        tracer(True)
        end_fill()
    
    
    # 胡须
    def beard():
        my_goto(-32, 135)
        seth(165)
        fd(60)
    
        my_goto(-32, 125)
        seth(180)
        fd(60)
    
        my_goto(-32, 115)
        seth(193)
        fd(60)
    
        my_goto(37, 135)
        seth(15)
        fd(60)
    
        my_goto(37, 125)
        seth(0)
        fd(60)
    
        my_goto(37, 115)
        seth(-13)
        fd(60)
    
    # 嘴巴
    def mouth():
        my_goto(5, 148)
        seth(270)
        fd(100)
        seth(0)
        circle(120, 50)
        seth(230)
        circle(-120, 100)
    
    # 围巾
    def scarf():
        fillcolor('#e70010')
        begin_fill()
        seth(0)
        fd(200)
        circle(-5, 90)
        fd(10)
        circle(-5, 90)
        fd(207)
        circle(-5, 90)
        fd(10)
        circle(-5, 90)
        end_fill()
    
    # 鼻子
    def nose():
        my_goto(-10, 158)
        seth(315)
        fillcolor('#e70010')
        begin_fill()
        circle(20)
        end_fill()
    
    # 黑眼睛
    def black_eyes():
        seth(0)
        my_goto(-20, 195)
        fillcolor('#000000')
        begin_fill()
        circle(13)
        end_fill()
    
        pensize(6)
        my_goto(20, 205)
        seth(75)
        circle(-10, 150)
        pensize(3)
    
        my_goto(-17, 200)
        seth(0)
        fillcolor('#ffffff')
        begin_fill()
        circle(5)
        end_fill()
        my_goto(0, 0)
    
    
    
    #
    def face():
    
        fd(183)
        lt(45)
        fillcolor('#ffffff')
        begin_fill()
        circle(120, 100)
        seth(180)
        # print(pos())
        fd(121)
        pendown()
        seth(215)
        circle(120, 100)
        end_fill()
        my_goto(63.56,218.24)
        seth(90)
        eyes()
        seth(180)
        penup()
        fd(60)
        pendown()
        seth(90)
        eyes()
        penup()
        seth(180)
        fd(64)
    
    # 头型
    def head():
        penup()
        circle(150, 40)
        pendown()
        fillcolor('#00a0de')
        begin_fill()
        circle(150, 280)
        end_fill()
    
    # 画哆啦A梦
    def Doraemon():
        # 头部
        head()
    
        # 围脖
        scarf()
    
        #
        face()
    
        # 红鼻子
        nose()
    
        # 嘴巴
        mouth()
    
        # 胡须
        beard()
    
        # 身体
        my_goto(0, 0)
        seth(0)
        penup()
        circle(150, 50)
        pendown()
        seth(30)
        fd(40)
        seth(70)
        circle(-30, 270)
    
    
        fillcolor('#00a0de')
        begin_fill()
    
        seth(230)
        fd(80)
        seth(90)
        circle(1000, 1)
        seth(-89)
        circle(-1000, 10)
    
        # print(pos())
    
        seth(180)
        fd(70)
        seth(90)
        circle(30, 180)
        seth(180)
        fd(70)
    
        # print(pos())
        seth(100)
        circle(-1000, 9)
    
        seth(-86)
        circle(1000, 2)
        seth(230)
        fd(40)
    
        # print(pos())
    
    
        circle(-30, 230)
        seth(45)
        fd(81)
        seth(0)
        fd(203)
        circle(5, 90)
        fd(10)
        circle(5, 90)
        fd(7)
        seth(40)
        circle(150, 10)
        seth(30)
        fd(40)
        end_fill()
    
        # 左手
        seth(70)
        fillcolor('#ffffff')
        begin_fill()
        circle(-30)
        end_fill()
    
        #
        my_goto(103.74, -182.59)
        seth(0)
        fillcolor('#ffffff')
        begin_fill()
        fd(15)
        circle(-15, 180)
        fd(90)
        circle(-15, 180)
        fd(10)
        end_fill()
    
        my_goto(-96.26, -182.59)
        seth(180)
        fillcolor('#ffffff')
        begin_fill()
        fd(15)
        circle(15, 180)
        fd(90)
        circle(15, 180)
        fd(10)
        end_fill()
    
        # 右手
        my_goto(-133.97, -91.81)
        seth(50)
        fillcolor('#ffffff')
        begin_fill()
        circle(30)
        end_fill()
    
        # 口袋
        my_goto(-103.42, 15.09)
        seth(0)
        fd(38)
        seth(230)
        begin_fill()
        circle(90, 260)
        end_fill()
    
        my_goto(5, -40)
        seth(0)
        fd(70)
        seth(-90)
        circle(-70, 180)
        seth(0)
        fd(70)
    
        #铃铛
        my_goto(-103.42, 15.09)
        fd(90)
        seth(70)
        fillcolor('#ffd200')
        # print(pos())
        begin_fill()
        circle(-20)
        end_fill()
        seth(170)
        fillcolor('#ffd200')
        begin_fill()
        circle(-2, 180)
        seth(10)
        circle(-100, 22)
        circle(-2, 180)
        seth(180-10)
        circle(100, 22)
        end_fill()
        goto(-13.42, 15.09)
        seth(250)
        circle(20, 110)
        seth(90)
        fd(15)
        dot(10)
        my_goto(0, -150)
    
        # 画眼睛
        black_eyes()
    
    if __name__ == '__main__':
        screensize(800,600, "#f0f0f0")
        pensize(3)  # 画笔宽度
        speed(9)    # 画笔速度
        Doraemon()
        my_goto(100, -300)
        write('by 木子欢儿', font=("Bradley Hand ITC", 30, "bold"))
        mainloop()

    结果:

  • 相关阅读:
    利用win10自带的虚拟机Hyper-V安装Centos7的步骤教程
    Java元组Tuple介绍与使用
    Fiddler高级用法-设置断点
    Fiddler高级用法-抓取手机app数据包
    Fiddler基础用法-抓取浏览器数据包
    dig 命令
    curl 命令
    vmware虚拟机三种网络连接方式
    解决虚拟机vmware虚拟机安装64位系统“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”的问题
    linux 文件系统 xfs、ext4、ext3 的区别
  • 原文地址:https://www.cnblogs.com/HGNET/p/12733223.html
Copyright © 2020-2023  润新知