详解用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 strip lstrip rstrip使用方法
Sep 06 Python
Django中URLconf和include()的协同工作方法
Jul 20 Python
Python安装官方whl包和tar.gz包的方法(推荐)
Jun 04 Python
pandas read_excel()和to_excel()函数解析
Sep 19 Python
基于Python获取docx/doc文件内容代码解析
Feb 17 Python
python3实现往mysql中插入datetime类型的数据
Mar 02 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
May 26 Python
Python如何创建装饰器时保留函数元信息
Aug 07 Python
基于python实现图片转字符画代码实例
Sep 04 Python
Python pymysql模块安装并操作过程解析
Oct 13 Python
Flask-SocketIO服务端安装及使用代码示例
Nov 26 Python
Python数据清洗工具之Numpy的基本操作
Apr 22 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
一个简单的域名注册情况查询程序
2006/10/09 PHP
解析file_get_contents模仿浏览器头(user_agent)获取数据
2013/06/27 PHP
ThinkPHP令牌验证实例
2014/06/18 PHP
基于CakePHP实现的简单博客系统实例
2015/06/28 PHP
PHP简单遍历对象示例
2016/09/28 PHP
PHP基于mcript扩展实现对称加密功能示例
2019/02/21 PHP
thinkphp5框架调用其它控制器方法 实现自定义跳转界面功能示例
2019/07/03 PHP
精通Javascript系列之Javascript基础篇
2011/06/07 Javascript
NodeJs中的非阻塞方法介绍
2012/06/05 NodeJs
jQuery动画效果-slideUp slideDown上下滑动示例代码
2013/08/28 Javascript
javascript创建和存储cookie示例
2014/01/07 Javascript
JavaScript DSL 流畅接口(使用链式调用)实例
2015/03/15 Javascript
JavaScript阻止浏览器返回按钮的方法
2015/03/18 Javascript
Javascript对象字面量的理解
2016/06/22 Javascript
Angularjs分页查询的实现
2017/02/24 Javascript
深入理解基于vue-cli的vuex配置
2017/07/24 Javascript
js使用xml数据载体实现城市省份二级联动效果
2017/11/08 Javascript
Vue之封装公用变量以及实现方式
2020/07/31 Javascript
纯js+css实现在线时钟
2020/08/18 Javascript
三步搞定:Vue.js调用Android原生操作
2020/09/07 Javascript
Python闭包函数定义与用法分析
2018/07/20 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
2019/06/19 Python
python celery分布式任务队列的使用详解
2019/07/08 Python
画pytorch模型图,以及参数计算的方法
2019/08/17 Python
Pandas数据离散化原理及实例解析
2019/11/16 Python
Python 实现自动获取种子磁力链接方式
2020/01/16 Python
Tensorflow实现将标签变为one-hot形式
2020/05/22 Python
美国围栏公司:Walpole Outdoors
2019/11/19 全球购物
大学同学聚会邀请函
2014/01/19 职场文书
2015年世界无烟日活动总结
2015/02/10 职场文书
公文写作:工伤事故分析报告怎么写?
2019/11/05 职场文书
Python一行代码实现自动发邮件功能
2021/05/30 Python
手把手教你从零开始react+antd搭建项目
2021/06/03 Javascript
在Java中Collection的一些常用方法总结
2021/06/13 Java/Android
PyTorch中的torch.cat简单介绍
2022/03/17 Python
Golang连接并操作MySQL
2022/04/14 MySQL