资讯专栏INFORMATION COLUMN

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

tigerZH / 1729人阅读

摘要:环境版本操作系统引言最近我媳妇每天晚上吃饭时候也拿手机看,上厕所也在看。所以我们先把这个动作封装成一个函数抬笔移动画笔到落笔接下来就来画盾牌。盾牌的话,注意观察美队盾牌,颜色是红白红蓝。

0 环境

Python版本:3.6.6

操作系统:Mac OS Mojave 10.14.2

1 引言

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

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

没错,她在看美队……

这男人比我帅?……

比我有钱?……

还是比我有腔调?……

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

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

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

2 实战

先来看一个效果图:

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

这是一篇用Python画画的文章,更多有趣、好玩的Python应用、实战尽在知识星球「人人都是Pythonista」。

关注公众号「Python专栏」,回复:美队盾牌,获取全套代码!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43441.html

相关文章

  • 给伸手党的福利:Python 新手入门引导

    摘要:如果你仍然无法抉择,那请选择,毕竟这是未来的趋势,参考知乎回答还是编辑器该如何选我推荐社区版,配置简单功能强大使用起来省时省心,对初学者友好。 这是一篇 Python 入门指南,针对那些没有任何编程经验,从零开始学习 Python 的同学。不管你学习的出发点是兴趣驱动、拓展思维,还是工作需要、想要转行,都可以此文作为一个参考。 在这个信息爆炸的时代,以 Python入门 为关键字搜索出...

    用户84 评论0 收藏0
  • 【算法日积月累】0-写在前面的话

    摘要:现在发出来的版本,我重新使用了语言实现。其实我之前介绍的老师课程也大量参考和使用算法这本书上的思路和例题。看这本书主要是让我觉得算法可以以比较轻松的方式入门。剑指这本书主要用于准备算法面试,在网络上备受好评。 我是一个半路出家的程序员,在我刚开始从事编码工作的头几年,我没有接触过算法和数据结构,觉得它们是只会在我找工作的时候用得到的知识。尽管有很多人跟我说过算法和数据结构无比重要,我也...

    flybywind 评论0 收藏0
  • 第7期 Datawhale 组队学习计划

    马上就要开始啦这次共组织15个组队学习 涵盖了AI领域从理论知识到动手实践的内容 按照下面给出的最完备学习路线分类 难度系数分为低、中、高三档 可以按照需要参加 - 学习路线 - showImg(https://segmentfault.com/img/remote/1460000019082128); showImg(https://segmentfault.com/img/remote/...

    dinfer 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<