用Python怎样画一个哆啦A梦,过程是怎样
Admin 2022-06-11 群英技术资讯 1111 次浏览
今天小编跟大家讲解下有关“用Python怎样画一个哆啦A梦,过程是怎样”的内容 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了相关资料,希望小伙伴们看了有所帮助。本文基于64位windows系统(鼠标右键点击桌面“此电脑”图标――属性可查看电脑系统版本)、python3.x(pycharm自动安装的版本, 3.0以上)。文中代码内容所使用的工具是pycharm-community-2020.1,实践中如有碰到问题,可留言提问。
前阵子有看到zh上有大神画了这个哆啦A梦的大头贴,自己也来试了一下,很简单,但长篇整段的代码对刚刚学会海龟绘图语法的初学者来说还是有一定难度,所以来做一个拆解版详细步骤讲解实现。
言归正传,先上效果图。

调整画笔粗细到8
隐藏画笔
画一个半径为120的圆
填充成蓝色(颜色值由取色吸管吸色测量得出)
import turtle as t
t.pensize(8)
t.hideturtle()
# 猫脸外圈蓝色
t.fillcolor('#00A1E8')
t.begin_fill()
t.circle(120)
t.end_fill()

调整画笔粗细到3
画一个半径为100的圆
填充成白色(颜色值由取色吸管吸色测量得出)
# 猫脸内圈白色
t.pensize(3)
t.fillcolor('white')
t.begin_fill()
t.circle(100)
t.end_fill()

抬起画笔
移动至坐标(0,134)准备画鼻子
调整画笔粗细到4
落下画笔
画一个半径为18的圆
填充成红色(颜色值由取色吸管吸色测量得出)
# 鼻子
t.penup()
t.home()
t.goto(0, 134)
t.pendown()
t.pensize(4)
t.fillcolor("#EA0014")
t.begin_fill()
t.circle(18)
t.end_fill()

抬起画笔
移动至坐标(7,155)准备画鼻尖的白色圆点
调整画笔粗细到2
落下画笔
画一个半径为4的圆
画笔白色,填充白色(颜色值由取色吸管吸色测量得出)
# 鼻尖
t.penup()
t.goto(7, 155)
t.pensize(2)
t.color('white', 'white')
t.pendown()
t.begin_fill()
t.circle(4)
t.end_fill()

抬起画笔
移动至坐标(-30,160)准备画左眼
调整画笔粗细到4
落下画笔
画笔黑色,填充白色(颜色值由取色吸管吸色测量得出)
定义绘制步长变量a,设置初始值为0.4
循环控制总角度120:
当角度等于0-30度或角度等于60-90度时:
每循环一次步长a增加0.08
每循环一次画笔左转3度
每循环一次向前绘制步长变量a
否则:
每循环一次步长a减少0.08
每循环一次画笔左转3度
每循环一次向前绘制步长变量a
# 左眼
t.penup()
t.goto(-30, 160)
t.pensize(4)
t.pendown()
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.left(3) # 向左转3度
t.forward(a) # 向前走a的步长
else:
a = a - 0.08
t.left(3)
t.forward(a)
t.end_fill()

抬起画笔
移动至坐标(30,160)准备画右眼
调整画笔粗细到4
落下画笔
画笔黑色,填充白色(颜色值由取色吸管吸色测量得出)
循环控制总角度120:
当角度等于0-30度或角度等于60-90度时:
每循环一次步长a增加0.08
每循环一次画笔左转3度
每循环一次向前绘制步长变量a
否则:
每循环一次步长a减少0.08
每循环一次画笔左转3度
每循环一次向前绘制步长变量a
# 右眼
t.penup()
t.goto(30, 160)
t.pensize(4)
t.pendown()
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.left(3) # 向左转3度
t.forward(a) # 向前走a的步长
else:
a = a - 0.08
t.left(3)
t.forward(a)
t.end_fill()

抬起画笔
移动至坐标(-38,190)准备画左眼内部
调整画笔粗细到8
落下画笔
右转-30度,绘制步长15的线条
右转70度,绘制步长15的线条
# 左眼内部 t.penup() t.goto(-38, 190) t.pensize(8) t.pendown() t.right(-30) t.forward(15) t.right(70) t.forward(15)

抬起画笔
移动至坐标(15,185)准备画右眼内部黑色眼球
调整画笔粗细到4
落下画笔
画笔黑色,填充黑色(颜色值由取色吸管吸色测量得出)
画一个半径为13的圆
# 右眼内部
t.penup()
t.goto(15, 185)
t.pensize(4)
t.pendown()
t.color('black', 'black')
t.begin_fill()
t.circle(13)
t.end_fill()

抬起画笔
移动至坐标(13,190)准备画右眼黑色眼球内部的白色圆点
调整画笔粗细到2
落下画笔
画笔白色,填充白色(颜色值由取色吸管吸色测量得出)
画一个半径为5的圆
# 右眼内部白色圆点
t.penup()
t.goto(13, 190)
t.pensize(2)
t.pendown()
t.color('white', 'white')
t.begin_fill()
t.circle(5)
t.end_fill()

抬起画笔
移动至坐标(0,134)并恢复初始状态,准备画鼻子下面的黑色竖线
调整画笔粗细到4
落下画笔
画笔黑色(颜色值由取色吸管吸色测量得出)
右转90度
绘制步长40的线条
# 鼻子下面的黑色竖线
t.penup()
t.home()
t.goto(0, 134)
t.pensize(4)
t.pencolor('black')
t.pendown()
t.right(90)
t.forward(40)

抬起画笔
移动至坐标(0,124)并恢复初始状态,准备画右边从上往下数的第1根胡子
调整画笔粗细到3
落下画笔
画笔黑色(颜色值由取色吸管吸色测量得出)
左转10度
绘制步长80的线条
――――――――――――――――――――――――――――――――
抬起画笔
移动至坐标(0,114)并恢复初始状态,准备画右边从上往下数的第2根胡子
调整画笔粗细到3
落下画笔
画笔黑色(颜色值由取色吸管吸色测量得出)
左转6度
绘制步长80的线条
――――――――――――――――――――――――――――――――
抬起画笔
移动至坐标(0,104)并恢复初始状态,准备画右边从上往下数的第3根胡子
调整画笔粗细到3
落下画笔
画笔黑色(颜色值由取色吸管吸色测量得出)
左转0度
绘制步长80的线条
# 右边的胡子(第1根)
t.penup()
t.home()
t.goto(0, 124)
t.pensize(3)
t.pencolor('black')
t.pendown()
t.left(10)
t.forward(80)
# 右边的胡子(第2根)
t.penup()
t.home()
t.goto(0, 114)
t.pensize(3)
t.pencolor('black')
t.pendown()
t.left(6)
t.forward(80)
# 右边的胡子(第3根)
t.penup()
t.home()
t.goto(0, 104)
t.pensize(3)
t.pencolor('black')
t.pendown()
t.left(0)
t.forward(80)

抬起画笔
移动至坐标(0,124)并恢复初始状态,准备画左边从上往下数的第1根胡子
调整画笔粗细到3
落下画笔
画笔黑色(颜色值由取色吸管吸色测量得出)
左转170度
绘制步长80的线条
――――――――――――――――――――――――――――――――
抬起画笔
移动至坐标(0,114)并恢复初始状态,准备画左边从上往下数的第2根胡子
调整画笔粗细到3
落下画笔
画笔黑色(颜色值由取色吸管吸色测量得出)
左转174度
绘制步长80的线条
――――――――――――――――――――――――――――――――
抬起画笔
移动至坐标(0,104)并恢复初始状态,准备画左边从上往下数的第3根胡子
调整画笔粗细到3
落下画笔
画笔黑色(颜色值由取色吸管吸色测量得出)
左转180度
绘制步长80的线条
# 左边的胡子(第1根)
t.penup()
t.home()
t.goto(0, 124)
t.pensize(3)
t.pencolor('black')
t.pendown()
t.left(170)
t.forward(80)
# 左边的胡子(第2根)
t.penup()
t.home()
t.goto(0, 114)
t.pensize(3)
t.pencolor('black')
t.pendown()
t.left(174)
t.forward(80)
# 左边的胡子(第3根)
t.penup()
t.home()
t.goto(0, 104)
t.pensize(3)
t.pencolor('black')
t.pendown()
t.left(180)
t.forward(80)
抬起画笔
移动至坐标(-70,70),准备画下边沿圆弧
调整画笔粗细到6
落下画笔
画笔黑色,填充红色(颜色值由取色吸管吸色测量得出)
恢复画笔初始方向并右转60度
绘制半径80,角度40的圆弧
绘制半径80,角度80的圆弧
――――――――――――――――――――――――――――――――
抬起画笔
恢复初始
移动至坐标(-80,70),准备画上边沿横线
落下画笔
绘制步长160的线条
# 嘴巴(下边沿圆弧和颜色填充)
t.penup()
t.goto(-70, 70)
t.pendown()
t.color('black', 'red')
t.pensize(6)
t.setheading(-60)
t.begin_fill()
t.circle(80, 40)
t.circle(80, 80)
t.end_fill()
# 嘴巴(上边沿的横线)
t.penup()
t.home()
t.goto(-80, 70)
t.pendown()
t.forward(160)

抬起画笔
恢复初始
移动至坐标(-50,50),准备画舌头
调整画笔粗细到1
落下画笔
画笔黑色,填充土黄色(颜色值由取色吸管吸色测量得出)
恢复画笔初始方向并左转40度
绘制半径-40,角度40的圆弧
绘制半径-40,角度40的圆弧
恢复画笔初始方向并左转40度
绘制半径-40,角度40的圆弧
绘制半径-40,角度40的圆弧
恢复画笔初始方向并左转220度
绘制半径-80,角度40的圆弧
绘制半径-80,角度40的圆弧
# 舌头
t.penup()
t.home()
t.goto(-50, 50)
t.pendown()
t.pensize(1)
t.fillcolor("#eb6e1a")
t.setheading(40)
t.begin_fill()
t.circle(-40, 40)
t.circle(-40, 40)
t.setheading(40)
t.circle(-40, 40)
t.circle(-40, 40)
t.setheading(220)
t.circle(-80, 40)
t.circle(-80, 40)
t.end_fill()

抬起画笔
移动至坐标(-70,12),准备画红色围巾
调整画笔粗细到14
落下画笔
画笔红色(颜色值由取色吸管吸色测量得出)
恢复画笔初始方向并右转20度
绘制半径200,角度30的圆弧
绘制半径200,角度10的圆弧
# 领带
t.penup()
t.goto(-70, 12)
t.pensize(14)
t.pencolor('red')
t.pendown()
t.setheading(-20)
t.circle(200, 30)
t.circle(200, 10)

抬起画笔
移动至坐标(0,-46),准备画铃铛
调整画笔粗细到3
落下画笔
画笔黑色,填充黄色(颜色值由取色吸管吸色测量得出)
绘制一个半径25的圆
――――――――――――――――――――――――――――――――
抬起画笔
移动至坐标(-5,-40),准备画铃铛细节部分
调整画笔粗细到2
画笔黑色,填充黄绿色(颜色值由取色吸管吸色测量得出)
绘制一个半径5的圆
调整画笔粗细到3
右转115度
绘制步长7的线条
# 铃铛
t.penup()
t.goto(0, -46)
t.pendown()
t.pensize(3)
t.color("black", '#f8d102')
t.begin_fill()
t.circle(25)
t.end_fill()
# 铃铛细节
t.penup()
t.goto(-5, -40)
t.pendown()
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.done()

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
imap-tools模块是python的第三方扩展, 它使用标准库imaplib,并将常见的邮件处理事件封装,邮件处理起来代码短,下面给大家介绍下python使用imap-tools模块下载邮件中的附件示例代码,感兴趣的朋友一起看看吧
python安装完毕后,提示找不到ssl模块:[www@pythontab com~]$pythonPython2 7 15(default,Oct232018,18:08:43)[GCC4 4 720120313(RedHat4
直方图就是对图像的另外一种解释,它描述了整幅图像的灰度分布。通过直方图我们可以对图像的亮度、灰度分布、对比度等有了一个直观的认识。本文将为大家详细介绍一下如何通过OpenCV实现直方图统计,感兴趣的可以了解一下
最近开发中用到了eval()与exec()这两个函数,不知道在哪种场景下用哪个函数,所以就翻了下Python的文档。这里就来简单说一下这两个函数的区
Python常见的异常提示及含义对照表如下:异常名称描述BaseException所有异常的基类SystemExit解释器请求退出KeyboardInterrupt用户中断执行
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008