用Python怎样画一个哆啦A梦,过程是怎样
Admin 2022-06-11 群英技术资讯 341 次浏览
本文基于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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了Python 中面向接口编程详情,Python 中的接口与大多数其它语言的处理方式不同,它们的设计复杂性也不同,关于Python 接口编程的介绍,需要的小伙伴可以参考下面文章内容
内容介绍time模块time.sleep()time.time()time.localtime()time.strftime()datetime()random模块random.random()ran
这篇文章主要介绍了Python基础之操作MySQL数据库,文中有非常详细的代码示例,对正在学习python基础的小伙伴们有非常好的帮助,需要的朋友可以参考下
在python里一行输入多个数保存到列表的方法是什么?一些朋友可能会遇到这方面的问题,对此在下文小编向大家来讲解一下,内容详细,易于理解,希望大家阅读完这篇能有收获哦,有需要的朋友就往下看吧!
这篇文章主要介绍了python实现三阶魔方还原的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008