详解用Python练习画个美队盾牌


Posted in Python onMarch 23, 2019

详解用Python练习画个美队盾牌

0 环境

Python版本:3.6.6

操作系统:Mac OS Mojave 10.14.2

1 引言

最近我媳妇每天晚上吃饭时候也拿手机看,上厕所也在看。

看着看着还会笑?WTF?你在干嘛呢?

没错,她在看美队……

这男人比我帅?……

比我有钱?……

还是比我有腔调?……

答案很明显,我相信你们的眼睛都是雪亮的。

那问题来了,作为一个男人,怎么能忍?虽然是个明星,虽然是假的,虽然已经挽回不了败局了……那我就送个美队的盾牌给你吧……

这篇文章不是Turtle的入门篇,所以关于基本的画笔使用小胖不在这篇里赘述了。有兴趣的可以留言,我会根据你们的反馈来写一篇或者一个系列。

2 实战

先来看一个效果图:

详解用Python练习画个美队盾牌

用过Turtle的都知道,画笔是需要抬手和落笔的。这一点一定要理解,因为计算机是很死板的,你的每一个动作都必须告诉他,包括GC。

所以你的画笔一旦落下,经过的每一处都会留下字迹。如果希望隔开一段距离就需要经过「抬笔」->「移动画笔」->「落笔」。

所以我们先把这个动作封装成一个函数:

def setpen(x, y):
  # 抬笔
  t.penup()
  # 移动画笔到(x, y)
  t.goto(x, y)
  # 落笔
  t.pendown()
  t.setheading(0)

 接下来就来画盾牌。盾牌的话,注意观察美队盾牌,颜色是「红」->「白」->「红」->「蓝」。

这里有一个技巧,就是后面填充的圆圈背景色是可以覆盖之前画的圆圈的背景色。

def circle(x, y, r, color):
  # 为了保证画出的圆够圆,所以我们把圆的边设置的多一些
  n = 36
  angle = 360 / n
  pi = 3.1415926
  # 周长
  c = 2 * pi * r
  # 每条边的长度
  l = c / n
  # 起始位置
  start_x = x - l / 2
  start_y = y + r
  # 移动画笔
  setpen(start_x, start_y)
  # 选择画笔颜色
  t.pencolor(color)
  # 选择背景色
  t.fillcolor(color)
  # 填充
  t.begin_fill()
  for i in range(n):
    t.forward(l)
    t.right(angle)
  t.end_fill()

接下来就是画里面那个白色的五角星了,这里就不注释了,因为和画圈的过程差不多。

def five_star(l):
  setpen(0, 0)
  t.setheading(162)
  t.forward(150)
  t.setheading(0)
  t.fillcolor('WhiteSmoke')
  t.begin_fill()
  t.hideturtle()
  t.penup()
  for i in range(5):
    t.forward(l)
    t.right(144)
  t.end_fill()

主函数:

def sheild():
  circle(0, 0, 300, 'red')
  circle(0, 0, 250, 'white')
  circle(0, 0, 200, 'red')
  circle(0, 0, 150, 'blue')
  five_star(284)

if __name__ == '__main__':
  sheild()
  # 结束乌龟图
  turtle.done()

以上所述是小编给大家介绍的用Python练习画个美队盾牌详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
使用python 获取进程pid号的方法
Mar 10 Python
Python使用pickle模块存储数据报错解决示例代码
Jan 26 Python
使用Python监视指定目录下文件变更的方法
Oct 15 Python
python 常见字符串与函数的用法详解
Nov 23 Python
Python 仅获取响应头, 不获取实体的实例
Aug 21 Python
Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法
Aug 26 Python
flask/django 动态查询表结构相同表名不同数据的Model实现方法
Aug 29 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
Oct 24 Python
Python转换itertools.chain对象为数组的方法
Feb 07 Python
深入浅析python 中的self和cls的区别
Jun 20 Python
Python3.9.0 a1安装pygame出错解决全过程(小结)
Feb 02 Python
python之np.argmax()及对axis=0或者1的理解
Jun 02 Python
详解python中TCP协议中的粘包问题
Mar 22 #Python
Python JSON格式数据的提取和保存的实现
Mar 22 #Python
Python3.4解释器用法简单示例
Mar 22 #Python
Python常见数字运算操作实例小结
Mar 22 #Python
详解python校验SQL脚本命名规则
Mar 22 #Python
pymongo中group by的操作方法教程
Mar 22 #Python
Python常用特殊方法实例总结
Mar 22 #Python
You might like
如何利用php+mysql保存和输出文件
2006/10/09 PHP
PHP中去除换行解决办法小结(PHP_EOL)
2011/11/27 PHP
CodeIgniter框架过滤HTML危险代码
2014/06/12 PHP
Jquery 表单验证类介绍与实例
2013/06/09 Javascript
Jquery取得iframe下内容的方法
2013/11/18 Javascript
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
javascript绘制漂亮的心型线效果完整实例
2016/02/02 Javascript
JavaScript中Form表单技术汇总(推荐)
2016/06/26 Javascript
js获取腾讯视频ID的方法
2016/10/03 Javascript
利用nodejs监控文件变化并使用sftp上传到服务器
2017/02/18 NodeJs
详解vuex 中的 state 在组件中如何监听
2017/05/23 Javascript
JS实现快递单打印功能【推荐】
2018/06/21 Javascript
JS实现显示当前日期的实例代码
2018/07/03 Javascript
IE11下CKEditor在Bootstrap Modal中下拉问题的解决
2019/09/25 Javascript
[03:40]2014DOTA2国际邀请赛 B神专访:躲箭真的很难
2014/07/13 DOTA
[01:15:45]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第一局
2016/02/26 DOTA
Python随机生成一个6位的验证码代码分享
2015/03/24 Python
在Python的web框架中中编写日志列表的教程
2015/04/30 Python
python 为什么说eval要慎用
2019/03/26 Python
使用Python求解带约束的最优化问题详解
2020/02/11 Python
使用 Python 在京东上抢口罩的思路详解
2020/02/27 Python
python的reverse函数翻转结果为None的问题
2020/05/11 Python
英国领先的高街书籍专家:Waterstones
2018/02/01 全球购物
澳洲健康食品网上商店:Aussie Health Products
2018/06/15 全球购物
商得四方公司面试题(gid+)
2014/04/30 面试题
中学生校园广播稿
2014/01/16 职场文书
单位在职证明书
2014/09/11 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
《爱的教育》读书心得
2014/11/08 职场文书
世界文化遗产导游词
2015/02/13 职场文书
综合测评自我评价
2015/03/06 职场文书
2015政治思想表现评语
2015/03/25 职场文书
酒店财务部岗位职责
2015/04/14 职场文书
如何利用map实现Nginx允许多个域名跨域
2021/03/31 Servers
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
2021/05/31 Python
Spring-cloud Config Server的3种配置方式
2021/09/25 Java/Android