详解用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中使用socket发送HTTP请求数据接收不完整问题解决方法
Feb 04 Python
理解生产者消费者模型及在Python编程中的运用实例
Jun 26 Python
python实现mysql的读写分离及负载均衡
Feb 04 Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
Jun 13 Python
解决新django中的path不能使用正则表达式的问题
Dec 18 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
Aug 27 Python
python使用itchat模块给心爱的人每天发天气预报
Nov 25 Python
python实现字典嵌套列表取值
Dec 16 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
Apr 16 Python
解决pytorch多GPU训练保存的模型,在单GPU环境下加载出错问题
Jun 23 Python
如何使用Python调整图像大小
Sep 26 Python
Python Pandas pandas.read_sql函数实例用法
Jun 21 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实现Socket服务器的代码
2008/04/03 PHP
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
2013/06/01 PHP
基于PHP5魔术常量与魔术方法的详解
2013/06/13 PHP
php如何获取文件的扩展名
2015/10/28 PHP
Yii框架日志操作图文与实例详解
2019/09/09 PHP
更正确的asp冒泡排序
2007/05/24 Javascript
不要在cookie中使用特殊字符的原因分析
2010/07/13 Javascript
ANT 压缩(去掉空格/注释)JS文件可提高js运行速度
2013/04/15 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
JavaScript实现更改网页背景与字体颜色的方法
2015/02/02 Javascript
jQuery给元素添加样式的方法详解
2015/12/30 Javascript
Google Maps基础及实例解析
2016/08/06 Javascript
node.js express安装及示例网站搭建方法(分享)
2016/08/22 Javascript
微信小程序 progress组件详解及实例代码
2016/10/25 Javascript
BootStrap Validator对于隐藏域验证和程序赋值即时验证的问题浅析
2016/12/01 Javascript
使用jQuery的ajax方法向服务器发出get和post请求的方法
2017/01/13 Javascript
jQuery:unbind方法的使用详解
2017/08/14 jQuery
js表达式与运算符简单操作示例
2020/02/15 Javascript
React 条件渲染最佳实践小结(7种)
2020/09/27 Javascript
Openlayers实现地图的基本操作
2020/09/28 Javascript
Python中的True,False条件判断实例分析
2015/01/12 Python
python入门基础之用户输入与模块初认识
2016/11/14 Python
Python自动生产表情包
2017/03/17 Python
Python OpenCV处理图像之图像直方图和反向投影
2018/07/10 Python
浅谈Python中的bs4基础
2018/10/21 Python
Python配置文件处理的方法教程
2019/08/29 Python
Python内置函数property()如何使用
2020/09/01 Python
Python threading模块condition原理及运行流程详解
2020/10/05 Python
Python Sqlalchemy如何实现select for update
2020/10/12 Python
澳大利亚头发和美容产品购物网站:OZ Hair & Beauty
2020/03/27 全球购物
实习公司领导推荐函
2014/05/21 职场文书
工作失职检讨书(精华篇)
2014/10/15 职场文书
大学生社会服务心得体会
2016/01/22 职场文书
《桂花雨》教学反思
2016/02/19 职场文书
详解MySQL的半同步
2021/04/22 MySQL
Python 键盘事件详解
2021/11/11 Python