详解用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共享引用(多个变量引用)示例代码
Dec 04 Python
Python中使用Boolean操作符做真值测试实例
Jan 30 Python
Python3.2中Print函数用法实例详解
May 19 Python
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
Aug 07 Python
用 Python 爬了爬自己的微信朋友(实例讲解)
Aug 25 Python
python实现TF-IDF算法解析
Jan 02 Python
python将文本中的空格替换为换行的方法
Mar 19 Python
python数字图像处理实现直方图与均衡化
May 04 Python
Django安装配置mysql的方法步骤
Oct 15 Python
python通过ffmgep从视频中抽帧的方法
Dec 05 Python
python跨文件使用全局变量的实现
Nov 17 Python
Python3中FuzzyWuzzy库实例用法
Nov 18 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模板引擎Smarty内置变量调解器用法详解
2016/04/11 PHP
基于javascipt-dom编程 table对象的使用
2013/04/22 Javascript
编写js扩展方法判断一个数组中是否包含某个元素
2013/11/08 Javascript
用jquery的方法制作一个简单的导航栏
2014/06/23 Javascript
JS制作简单的三级联动
2015/03/18 Javascript
jQuery点击改变class并toggle及toggleClass()方法定义用法
2015/12/11 Javascript
jquery实现简单Tab切换菜单效果
2020/07/17 Javascript
微信小程序 获取当前地理位置和经纬度实例代码
2016/12/05 Javascript
JS验证全角与半角及相互转化的介绍
2017/05/18 Javascript
浅谈FastClick 填坑及源码解析
2018/03/02 Javascript
浅谈Angular 观察者模式理解
2018/11/01 Javascript
ES6的异步终极解决方案分享
2019/07/11 Javascript
使用p5.js临摹动态图形
2019/10/23 Javascript
编程语言Python的发展史
2014/09/26 Python
利用Python爬取微博数据生成词云图片实例代码
2017/08/31 Python
Python回文字符串及回文数字判定功能示例
2018/03/20 Python
python 读写文件,按行修改文件的方法
2018/07/12 Python
Python3中urlencode和urldecode的用法详解
2019/07/23 Python
Form表单及django的form表单的补充
2019/07/25 Python
Python自动化完成tb喵币任务的操作方法
2019/10/30 Python
Python MySQL 日期时间格式化作为参数的操作
2020/03/02 Python
pycharm 2018 激活码及破解补丁激活方式
2020/09/21 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
2020/06/23 Python
Python基于xlrd模块处理合并单元格
2020/07/28 Python
vivo智能手机官方商城:vivo
2016/09/22 全球购物
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
世界上最大的乐器零售商:Guitar Center
2017/11/07 全球购物
高级护理实习生自荐信
2013/09/28 职场文书
会计电算化专业应届大学生求职信
2013/10/22 职场文书
门卫岗位职责
2013/11/15 职场文书
读书小明星事迹材料
2014/05/03 职场文书
民政局标准版离婚协议书
2014/12/01 职场文书
2014年生产部工作总结
2014/12/17 职场文书
2015年教师节贺卡寄语
2015/03/24 职场文书
离婚起诉书范文2015
2015/05/19 职场文书
使用Ajax实现无刷新上传文件
2022/04/12 Javascript