美文网首页大数据 爬虫Python AI Sql互联网科技
Python入门必学,用Python练习画个美队盾牌

Python入门必学,用Python练习画个美队盾牌

作者: 919b0c54458f | 来源:发表于2019-03-23 19:09 被阅读4次
image

0 环境

Python版本:3.6.6

操作系统:Mac OS Mojave 10.14.2

1 引言

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

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

没错,她在看美队……

这男人比我帅?……

比我有钱?……

还是比我有腔调?……

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

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

Python学习群:556370268,有大牛答疑,有资源共享!是一个非常不错的交流基地!欢迎喜欢Python的小伙伴!

2 实战

先来看一个效果图:

image

用过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练习画个美队盾牌

    本文链接:https://www.haomeiwen.com/subject/wtxevqtx.html