用Python画五星红旗

pk哥是篮球迷,18年亚运会时看了一场亚运会男篮决赛,中国队 VS 伊朗队,篮协主席姚明坐在场下坐镇,上半场中国队在次节最多落后 16 分的情况下,下半场上演逆转高潮,最终他们以 84-72 战胜伊朗男篮,时隔八年再夺亚运会男篮金牌的同时也成功报四年前仁川亚运会失利的一箭之仇。

比赛结束那一刻,看到队员们披着国旗庆祝,真的为他们高兴。这次亚运会,中国篮球大丰收,女篮击败朝韩联队,夺得亚运会女子篮球金牌。女子篮球 3 对 3,中国队 21-10 战胜日本 夺取冠军。男子篮球 3 对 3 男子决赛,中国 1 分险胜韩国夺冠。

乒乓球更不用说了,中国把亚运会打成了全运会。

今年的雅加达亚运会也在昨晚闭幕,中国代表团在金牌榜和总奖牌榜都遥遥领先于第二名的日本代表团和第三名的韩国代表团。中国运动员们凯旋而归。

今天用 Python 画一面五星红旗,向为国争光的运动员们致敬。

项目环境

语言:Python3
编辑器:Pycharm

导包

这次用到的库是 turtle,它是 Python 的内置库,直接导入即可。

画图思路

我们把五个星放在坐标轴的第二象限,坐标原点坐标定成(0,0)。画一下网格线,通过网格线来调整画五角星的坐标。

画布设置

画布的属性包括画布的大小、画布的背景颜色、绘制图形的颜色、填充图形的颜色、绘制图形的速度。

绘制图形

绘制图形前先掌握下 turtle 库绘图的一些基本用法。

turtle.begin_fill():准备开始填充图形。
turtle.goto(x, y):将画笔移到坐标的位置。
turtle.forward(n):向当前画笔方向移动 n 像素长。
turtle.left(m):逆时针移动 m°
turtle.right(m):顺时针移动 m°
turtle.end_fill():图形填充完成。

绘制主星

好了,现在开始画图了,先画主星。画图的难度在于我们要计算好坐标轴的位置,因为五角星的角度是可以计算出来的,所以画笔的旋转角度基本一样。

绘制右边四颗星

和主星不一样的地方是,右边四颗副星是带有一定的倾斜角度的,用 setheading() 来设置倾斜的角度,这个角度是你画图形的第一条线和水平线的逆时针旋转角度。还需调整副星图形的像素长。

其他三颗星和第一颗星类似,只是坐标和倾斜角度不同,其他代码都一样,这里就不啰嗦了,感兴趣的可参考我的源码。公众号回复「五星」获取源码。

此文章如果对你有点帮忙的话希望大家能多给点支持,关注、点赞、转发对我都是一种鼓励,有什么问题欢迎在后台联系我,也可以在后台加入技术交流群,群里有大神,可以一起交流学习。

 

文章为pk哥原创,我在我的公众号: Python 知识圈 上会分享更多心得体会,你也可以关注。

***版权申明:本文为 Python知识圈 pyzhishiquan.com 原创,没有Python知识圈书面授权,请勿以任何形式转载,摘编,复制或镜像。***

为您推荐

发表评论

电子邮件地址不会被公开。