查看原文
其他

Python | 用Python画个美队盾牌送给你

上海小胖 Python专栏 2018-10-26


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

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

没错,她在看美队……


这男人比我帅?……

比我有钱?……

还是比我有腔调?……

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


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


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


先来看一个效果图:


用过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()


好啦,今天的内容就到这了,欢迎留言和私信我你的想法~

所有代码都已上传:https://github.com/MiracleYoung/excercises/

也欢迎来我的博客下方留言互动: https://miracleyoung.github.io/



小胖开设了「Python专栏」星球,里面会有「Python原创」、「大航海计划」、「问题解答」、「面试刷题」、「大厂内推」、「技术分享」等。

目前正在做的是一个「大航海计划」:由船长发起,分为多个阶段,或招募或淘汰若干名船员,每周都会在星球做一次项目汇报。启动资金由船员众筹10元,与我无关。目标是让球友能够在星球里找到志同道合的小伙伴一起驶向新世界。

加入星球,每天0.18元,在这个星球能够得到的,不只是关于Python,圈子、人脉、资源,学习氛围,眼界都是比技术更值得去借鉴的东西。

也欢迎球友提问,每天我都会回答大家的问题,方向不限。


推荐阅读:

Python | Python面试基础+算法题精讲

Python | Jupyter导出PDF,自定义脚本告别G安装包


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存