Python利用Turtle绘制哆啦A梦和小猪佩奇
作者:电力系统与算法之美 发布时间:2022-05-08 08:38:24
标签:Python,Turtle,哆啦A梦,小猪佩奇
1.哆啦A梦
“只要把愿望系在竹竿上请求月亮女神,心愿便能达成”。我超喜欢这句话。
哆啦A梦的创造要追溯到1969年的某个截稿日,作者藤子·F·不二雄的家里突然闯进了一只小猫,虽然很快就要截稿了,但作者还是和小猫玩了起来,还替小猫挠虱子,而这一挠就是几个小时。等作者发现时间不够用的时候,已经来不及完成稿子。这时作者像热锅上的蚂蚁走来走去,突然踢到了女儿的不倒翁玩具,于是作者灵光一现,把猫的形象和不倒翁结合起来,就创造了哆啦A梦。
2.小猪佩奇
对比于国内的《喜羊羊与灰太狼》和《熊出没》,我希望有一天喜羊羊被灰太狼炖了、熊大被光头强一枪打中,然后直接卖到动物园。(哈哈哈......)可是这个想法一直没实现,有些失落。还是看小猪佩奇吧:
由英国E1 Kids于2004年5月31日发行首播后,其动画片已于全球180个地区播放,现已播出6季;
中国中央电视台少儿频道也在热播之中,极简的动画风格,幽默的对话语调,深具教育意义的故事情节,不仅能让学龄前儿童学习知识,更能让小朋友们从小养成良好的生活习惯体验生活,深受全球各地小朋友们以及其家长们的喜爱。
3.Python代码实现(哆啦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代码实现(小猪佩奇 )
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


猜你喜欢
- 阅读上一篇:打造设计你自己的字体 ⅠMyFonts.com上销售的字体总数已经超过55,000个。现有字体的巨大数量表明了一个事实:我们在设
- String slctpsql="select id ,"+uid+","+ddd+",&
- 给密码加密是什么:用户注册的密码一般网站管理人员会利用md5方法加密,这种加密方法的好处是它是单向加密的,也就是说,你只有在提前知道某一串密
- 查询死锁进程语句select request_session_id spid, OBJECT_NAME(resource_associate
- MySQL5升级为MySQL8问题my.ini首先推荐一个软件“everything”,一个轻巧的遍
- 按理说unittest 中是不应该测试那种外部依赖很强的用例,但是呢,有时候有些接口总是调试好之后怕忘了,就写了一些简单的测试case,想要
- watch介绍watch 属性监听 是一个对象,键是需要观察的属性,值是对应回调函数,主要用来监听某些特定数据的变化,从而进行某些具体的业务
- 最近开始学习Python开发,“工欲善其事必先利其器”,Python程序都是用什么工具开发出来的呢。
- 一、原因浅析今天在写一个Python与html5 Websocket 实例,么次终止运行重新运行脚本总是提示地址已经存在并且被使用!查询相关
- // 格式化字符串 Fmt("{0}.[{id}].{name}",{id:1,name:'
- 先给大家看一看美化之后的效果图:CSS:.div-select{ border: solid 1px #999; h
- 我就废话不多说了,大家还是直接看代码吧~type Animal struct { ID int64 Name string `gorm:&q
- 前文学习:python数据结构:数据类型.python数据结构输入输出及控制和异常.今天我们来学习面向对象编程,面向对象这种编程方式非常重要
- 本文所用环境:Python 3.6.5 |Anaconda custom (64-bit)|引言由于某些原因,需要用python读取二进制文
- 最近用pymysql把一些质量不是很高的数据源导入mysql数据库的时候遇到一点问题,主要是遇到像 \ 这样的具有特殊意义的字符时比较难处理
- 下边我就简单说一下过程和原理。第一步:实现一个匿名函数并能自己执行。(function(){ })() 这个函数在一样编的好的J
- 在业务稳定性要求比较高的情况下,运维为能及时发现问题,有时需要对应用程序的日志进行实时分析,当符合某个条件时就立刻报警,而不是被动等待出问题
- 本文实例讲述了python处理大数字的方法。分享给大家供大家参考。具体实现方法如下:def getFactorial(n): &
- 1、使用专用网站获取的是公网IP网址:http://myip.ipip.net代码:import requestsres = request
- 我最近在参与Python字节码相关的工作,想与大家分享一些这方面的经验。更准确的说,我正在参与2.6到2.7版本的CPython解释器字节码