Python利用Turtle绘制哆啦A梦和小猪佩奇

作者:电力系统与算法之美 时间:2022-05-08 08:38:24 

1.哆啦A梦

“只要把愿望系在竹竿上请求月亮女神,心愿便能达成”。我超喜欢这句话。

哆啦A梦的创造要追溯到1969年的某个截稿日,作者藤子·F·不二雄的家里突然闯进了一只小猫,虽然很快就要截稿了,但作者还是和小猫玩了起来,还替小猫挠虱子,而这一挠就是几个小时。等作者发现时间不够用的时候,已经来不及完成稿子。这时作者像热锅上的蚂蚁走来走去,突然踢到了女儿的不倒翁玩具,于是作者灵光一现,把猫的形象和不倒翁结合起来,就创造了哆啦A梦。

2.小猪佩奇

对比于国内的《喜羊羊与灰太狼》和《熊出没》,我希望有一天喜羊羊被灰太狼炖了、熊大被光头强一枪打中,然后直接卖到动物园。(哈哈哈......)可是这个想法一直没实现,有些失落。还是看小猪佩奇吧:

由英国E1 Kids于2004年5月31日发行首播后,其动画片已于全球180个地区播放,现已播出6季;

中国中央电视台少儿频道也在热播之中,极简的动画风格,幽默的对话语调,深具教育意义的故事情节,不仅能让学龄前儿童学习知识,更能让小朋友们从小养成良好的生活习惯体验生活,深受全球各地小朋友们以及其家长们的喜爱。

3.Python代码实现(哆啦A梦)

Python利用Turtle绘制哆啦A梦和小猪佩奇

import turtle as t
t.title('哆啦A梦')
# t.speed(5)
t.pensize(8)
t.hideturtle()
t.screensize(500, 500, bg='white')

"""猫脸"""
t.fillcolor('#00A1E8')
t.begin_fill()
t.circle(120)
t.end_fill()
t.pensize(3)
t.fillcolor('white')
t.begin_fill()
t.circle(100)
t.end_fill()
t.pu()
t.home()
t.goto(0, 134)
t.pd()
t.pensize(4)
t.fillcolor("#EA0014")
t.begin_fill()
t.circle(18)
t.end_fill()
t.pu()
t.goto(7, 155)
t.pensize(2)
t.color('white', 'white')
t.pd()
t.begin_fill()
t.circle(4)
t.end_fill()
t.pu()
t.goto(-30, 160)
t.pensize(4)
t.pd()
t.color('black', 'white')
t.begin_fill()
a = 0.4
for i in range(120):
   if 0 <= i < 30 or 60 <= i < 90:
       a = a + 0.08
       t.lt(3)  # 向左转3度
       t.fd(a)  # 向前走a的步长
   else:
       a = a - 0.08
       t.lt(3)
       t.fd(a)
t.end_fill()
t.pu()
t.goto(30, 160)
t.pensize(4)
t.pd()
t.color('black', 'white')
t.begin_fill()
for i in range(120):
   if 0 <= i < 30 or 60 <= i < 90:
       a = a + 0.08
       t.lt(3)  # 向左转3度
       t.fd(a)  # 向前走a的步长
   else:
       a = a - 0.08
       t.lt(3)
       t.fd(a)
t.end_fill()
t.pu()
t.goto(-38, 190)
t.pensize(8)
t.pd()
t.right(-30)
t.forward(15)
t.right(70)
t.forward(15)
t.pu()
t.goto(15, 185)
t.pensize(4)
t.pd()
t.color('black', 'black')
t.begin_fill()
t.circle(13)
t.end_fill()
t.pu()
t.goto(13, 190)
t.pensize(2)
t.pd()
t.color('white', 'white')
t.begin_fill()
t.circle(5)
t.end_fill()
t.pu()
t.home()
t.goto(0, 134)
t.pensize(4)
t.pencolor('black')
t.pd()
t.right(90)
t.forward(40)
t.pu()
t.home()
t.goto(0, 124)
t.pensize(3)
t.pencolor('black')
t.pd()
t.left(10)
t.forward(80)
t.pu()
t.home()
t.goto(0, 114)
t.pensize(3)
t.pencolor('black')
t.pd()
t.left(6)
t.forward(80)
t.pu()
t.home()
t.goto(0, 104)
t.pensize(3)
t.pencolor('black')
t.pd()
t.left(0)
t.forward(80)
"""左边的胡子"""
t.pu()
t.home()
t.goto(0, 124)
t.pensize(3)
t.pencolor('black')
t.pd()
t.left(170)
t.forward(80)
t.pu()
t.home()
t.goto(0, 114)
t.pensize(3)
t.pencolor('black')
t.pd()
t.left(174)
t.forward(80)
t.pu()
t.home()
t.goto(0, 104)
t.pensize(3)
t.pencolor('black')
t.pd()
t.left(180)
t.forward(80)
t.pu()
t.goto(-70, 70)
t.pd()
t.color('black', 'red')
t.pensize(6)
t.seth(-60)
t.begin_fill()
t.circle(80, 40)
t.circle(80, 80)
t.end_fill()
t.pu()
t.home()
t.goto(-80, 70)
t.pd()
t.forward(160)
t.pu()
t.home()
t.goto(-50, 50)
t.pd()
t.pensize(1)
t.fillcolor("#eb6e1a")
t.seth(40)
t.begin_fill()
t.circle(-40, 40)
t.circle(-40, 40)
t.seth(40)
t.circle(-40, 40)
t.circle(-40, 40)
t.seth(220)
t.circle(-80, 40)
t.circle(-80, 40)
t.end_fill()
# 领带
t.pu()
t.goto(-70, 12)
t.pensize(14)
t.pencolor('red')
t.pd()
t.seth(-20)
t.circle(200, 30)
t.circle(200, 10)
"""铃铛"""
t.pu()
t.goto(0, -46)
t.pd()
t.pensize(3)
t.color("black", '#f8d102')
t.begin_fill()
t.circle(25)
t.end_fill()
t.pu()
t.goto(-5, -40)
t.pd()
t.pensize(2)
t.color("black", '#79675d')
t.begin_fill()
t.circle(5)
t.end_fill()
t.pensize(3)
t.right(115)
t.forward(7)
t.mainloop()

4.Python代码实现(小猪佩奇 )

Python利用Turtle绘制哆啦A梦和小猪佩奇


import turtle
from turtle import *
turtle.title('小猪佩奇')

def nose(x,y):
   """画鼻子"""
   pensize(5)
   pencolor((255, 155, 192))
   penup()
   # 将海龟移动到指定的坐标
   goto(x,y)
   pendown()
   # 设置海龟的方向(0-东、90-北、180-西、270-南)
   setheading(-30)
   begin_fill()
   fillcolor(255, 192, 203)
   a = 0.4
   for i in range(120):
       if 0 <= i < 30 or 60 <= i <90:
           a = a + 0.08
           # 向左转3度
           left(3)
           # 向前走
           forward(a)
       else:
           a = a - 0.08
           left(3)
           forward(a)
   end_fill()
   penup()
   setheading(90)
   forward(25)
   setheading(0)
   forward(10)
   pendown()
   """设置画笔的颜色(红, 绿, 蓝)"""
   pencolor(255, 155, 192)
   setheading(10)
   begin_fill()
   circle(5)
   color(160, 82, 45)
   end_fill()
   penup()
   setheading(0)
   forward(20)
   pendown()
   pencolor(255, 155, 192)
   setheading(10)
   begin_fill()
   circle(5)
   color(160, 82, 45)
   end_fill()

def head(x, y):
   """画头"""
   color((255, 155, 192), "pink")
   penup()
   goto(x,y)
   setheading(0)
   pendown()
   begin_fill()
   setheading(180)
   circle(300, -30)
   circle(100, -60)
   circle(80, -100)
   circle(150, -20)
   circle(60, -95)
   setheading(161)
   circle(-300, 15)
   penup()
   goto(-100, 100)
   pendown()
   setheading(-30)
   a = 0.4
   for i in range(60):
       if 0<= i < 30 or 60 <= i < 90:
           a = a + 0.08
           lt(3) #向左转3度
           fd(a) #向前走a的步长
       else:
           a = a - 0.08
           lt(3)
           fd(a)
   end_fill()

def ears(x,y):
   """画耳朵"""
   color((255, 155, 192), "pink")
   penup()
   goto(x, y)
   pendown()
   begin_fill()
   setheading(100)
   circle(-50, 50)
   circle(-10, 120)
   circle(-50, 54)
   end_fill()
   penup()
   setheading(90)
   forward(-12)
   setheading(0)
   forward(30)
   pendown()
   begin_fill()
   setheading(90)
   circle(-50, 50)
   circle(-10, 120)
   circle(-50, 56)
   end_fill()

def eyes(x,y):
   """画眼睛"""
   color((255, 155, 192), "white")
   penup()
   setheading(90)
   forward(-20)
   setheading(0)
   forward(-95)
   pendown()
   begin_fill()
   circle(15)
   end_fill()
   color("black")
   penup()
   setheading(90)
   forward(12)
   setheading(0)
   forward(-3)
   pendown()
   begin_fill()
   circle(3)
   end_fill()
   color((255, 155, 192), "white")
   penup()
   seth(90)
   forward(-25)
   seth(0)
   forward(40)
   pendown()
   begin_fill()
   circle(15)
   end_fill()
   color("black")
   penup()
   setheading(90)
   forward(12)
   setheading(0)
   forward(-3)
   pendown()
   begin_fill()
   circle(3)
   end_fill()

def cheek(x,y):
   """画脸颊"""
   color((255, 155, 192))
   penup()
   goto(x,y)
   pendown()
   setheading(0)
   begin_fill()
   circle(30)
   end_fill()

def mouth(x,y):
   """画嘴巴"""
   color(239, 69, 19)
   penup()
   goto(x, y)
   pendown()
   setheading(-80)
   circle(30, 40)
   circle(40, 80)

def body(x,y):
   '''画身体'''
   penup()
   goto(x,y)
   pencolor('red')
   fillcolor(250,106,106)
   pendown()
   begin_fill()
   setheading(-66)
   circle(-450,17)
   setheading(180)
   forward(185)
   setheading(85)
   circle(-450,17)
   end_fill()
   '''右手'''
   penup()
   goto(110,-45)
   pendown()
   pensize(8)
   pencolor(255, 192, 203)
   setheading(30)
   circle(-400,10)
   penup()
   goto(167,-5)
   pendown()
   setheading(-120)
   forward(20)
   left(100)
   forward(20)
   '''左手'''
   penup()
   goto(-25,-45)
   pendown()
   pencolor(255, 192, 203)
   setheading(150)
   circle(400,10)
   penup()
   goto(-78,-6)
   pendown()
   setheading(-60)
   forward(20)
   right(100)
   forward(20)

def feet1(x,y):
   pensize(7)
   pencolor(255, 192, 203)
   penup()
   goto(x,y)
   setheading(-90)
   pendown()
   forward(10)
   penup()
   goto(x-12,y-10)
   pendown()
   pencolor(238,201,0)
   fillcolor(238,230,132)
   begin_fill()
   setheading(0)
   forward(24)
   right(90)
   forward(36)
   right(90)
   forward(40)
   circle(-10,180)
   forward(16)
   left(90)
   forward(12)
   end_fill()

def feet2(x,y):
   pensize(7)
   pencolor(255, 192, 203)
   penup()
   goto(x,y)
   setheading(-90)
   pendown()
   forward(10)
   penup()
   goto(x-12,y-10)
   pendown()
   pencolor(238,201,0)
   fillcolor(238,230,132)
   begin_fill()
   setheading(0)
   forward(24)
   right(90)
   forward(36)
   right(90)
   forward(40)
   circle(-10,180)
   forward(16)
   left(90)
   forward(12)
   end_fill()

def tail(x,y):
   pensize(8)
   penup()
   goto(x,y)
   pendown()
   pencolor(255, 192, 203)
   setheading(-5)
   circle(30,100)
   circle(10,180)
   circle(20,150)

def backg(x):
   penup()
   goto(-420,x)
   setheading(0)
   fillcolor(50,205,50)
   begin_fill()
   forward(840)
   right(90)
   forward(300)
   right(90)
   forward(840)
   right(90)
   forward(300)
   end_fill()
   setheading(0)
   fillcolor(0,191,255)
   begin_fill()
   forward(840)
   left(90)
   forward(600)
   left(90)
   forward(840)
   left(90)
   forward(600)
   end_fill()

def cloude1(x, y):
   """画云"""
   penup()
   goto(x,y)
   setheading(90)
   fillcolor(255,255,255)
   begin_fill()
   a = 0.4
   for i in range(120):
       if 0 <= i < 30 or 60 <= i <90:
           a = a + 0.14
           # 向左转3度
           left(3)
           # 向前走
           forward(a)
       else:
           a = a - 0.15
           left(3)
           forward(a)
   end_fill()

def cloude2(x, y):
   """画云"""
   penup()
   goto(x,y)
   setheading(90)
   fillcolor(255,255,255)
   begin_fill()
   a = 0.4
   for i in range(120):
       if 0 <= i < 30 or 60 <= i <90:
           a = a + 0.15
           # 向左转3度
           left(3)
           # 向前走
           forward(a)
       else:
           a = a - 0.13
           left(3)
           forward(a)
   end_fill()

def setting():
   """设置参数"""
   pensize(5)
   # 隐藏海龟
   hideturtle()
   colormode(255)
   color((255, 155, 192), "pink")
   setup(840, 700)
   speed(10)

def main():
   """主函数"""

setting()
   backg(0)
   body(105,-20)
   nose(-100, 100)
   head(-69, 167)
   ears(0, 160)
   eyes(0, 140)
   cheek(80, 10)
   mouth(-20, 30)
   feet1(10,-150)
   feet2(90,-150)
   tail(130,-110)
   cloude1(-200,200)
   cloude2(300,300)
   done()

if __name__ == '__main__':
   main()

来源:https://blog.csdn.net/weixin_46039719/article/details/123929900

标签:Python,Turtle,哆啦A梦,小猪佩奇
0
投稿

猜你喜欢

  • python访问sqlserver示例

    2022-07-15 07:25:01
  • 详解python中的json的基本使用方法

    2022-03-15 22:29:13
  • 如何用表单在线建立目录?

    2010-06-16 09:49:00
  • 对“打造自己的reset.css”文中观点的不同看法

    2009-03-08 18:05:00
  • DjangoRestFramework 使用 simpleJWT 登陆认证完整记录

    2021-03-29 18:34:12
  • Python pyecharts数据可视化实例详解

    2023-06-28 01:35:30
  • 建立用户体验过程的实用指南

    2007-11-19 12:53:00
  • asp中获取当前月份距离以前某个时间的月份数

    2012-11-30 20:29:40
  • ASP+ajax注册即时提示程序代码

    2011-02-05 11:25:00
  • 编写python代码实现简单抽奖器

    2023-04-07 12:32:48
  • python实现LBP方法提取图像纹理特征实现分类的步骤

    2023-05-24 02:12:27
  • 对xml操作的主要方法例子

    2008-06-29 14:21:00
  • 语义化的HTML结构到底有何好处?

    2009-07-13 12:38:00
  • asp javascript值的互相传递方法

    2011-03-30 10:37:00
  • python自动提取文本中的时间(包含中文日期)

    2023-08-22 21:32:11
  • python list 合并连接字符串的方法

    2021-12-18 09:35:30
  • python列表详情

    2023-12-29 01:59:06
  • asp函数解决SQL注入漏洞

    2008-10-12 19:53:00
  • 柳永法:vbs或asp采集文章时网页编码问题

    2009-02-04 10:50:00
  • JavaScript代码着色器

    2010-01-22 15:53:00
  • asp之家 网络编程 m.aspxhome.com