使用海龟绘图绘制一面五星红旗

今天是国庆节,中国正在举行建国七十周年大阅兵,很多人都在观看,我在家里也看了直播片段。在刷微博的过程中,无意中看到有人在介绍 海龟绘图 这个 Python 库,可以非常方便地绘制各种图形,其中有人提到可以绘制出一面五星红旗。

后来我查了一下,的确是可以,难度不大,只要理解基本的绘制流程即可,于是我尝试了一下,并成功绘制出一面五星红旗。本文记录过程,开发环境基于 Python v3.8Windows 10 x64

绘制思路

绘制思路很简单,不过在这里需要先理解坐标轴、画笔的颜色、背景色、角度等基础概念。

1、先设置弹框大小,也就是五星红旗的长、宽,单位是像素。

2、设置背景颜色为红色,设置五角星的线条、填充颜色都为黄色。

3、绘制中心的 1 个大五角星。

4、绘制边上的 4 个小五角星。

绘制代码

需要注意除了 Python 环境,还需要安装海龟绘图库,我使用的 Python v3.8 已经自带了这个库,如果读者有使用这个版本的 Python 则不需要再单独安装。如果是其它版本的 Python,可能缺失这个库,可以使用 pip 工具安装,参考安装命令:pip install turtle

当然,可能还会有其它依赖缺失问题,不属于本文讨论的范围,请读者自行解决。

提醒读者,这里涉及到的代码已经被我上传至 Github,命名为:__main__.py,读者可以提前下载查看:main.py

下面给出代码清单,包含注释,读者很容易看懂:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# 从海龟绘图模块中导入全部函数 
# 在 Python v3.8 中已经内置此模块,如果其它 Python 版本没有内置,需要使用 pip 安装
from turtle import *

# 开始绘制五星红旗
def daw_flag ():
# 设置大小,4 个参数:宽度、高度、起始值 x 轴、起始值 y 轴
setup (600, 400, 0, 0)
# 设置背景为红色
bgcolor ('red')
# 线条、填充颜色设置为黄色
fillcolor ('yellow')
color ('yellow')
# 画笔运行速度
speed (10)

# 大五角星绘制
draw_star (-280, 100, 0, 150, 144, 0)

# 4 个小五角星绘制
draw_star (-100, 180, 305, 50, 0, 144)
draw_star (-50, 110, 30, 50, 144, 0)
draw_star (-40, 50, 5, 50, 144, 0)
draw_star (-100, 10, 300, 50, 0, 144)


# 绘制五角星的方法,根据实际情况传入参数
def draw_star (gotox_val, gotoy_val, heading_val=0, fd_val=50, rt_val=0, lt_val=0):
# 开始填充
begin_fill ()
# 提起画笔,此时可以任意移动画笔位置
up ()
# 移动至指定坐标
goto (gotox_val, gotoy_val)
# 设置朝向角度
if (0 != heading):
setheading (heading_val)
# 放下画笔,此时再移动就开始绘制
down ()
# for 循环,绘制 5 条边
for i in range (5):
# forward,向前移动画笔指定单位,像素
fd (fd_val)
if (0 != rt_val):
# right,向右旋转指定单位,度数
rt (rt_val)
if (0 != lt_val):
# left,向左旋转指定单位,度数
lt (lt_val)
# 结束填充
end_fill ()

# 程序入口
if __name__=="__main__":
print (' 开始绘制五星红旗 & apos;)
daw_flag ()
print (' 结束绘制五星红旗 & apos;)
exitonclick ()
# input (' 暂停,等待输入(输入任意内容按回车键可退出):')

可以看到,代码中有 3 个函数:主函数 __main__、绘制五星红旗函数 draw_flag、绘制五角星函数 draw_star,这 3 个函数存在调用关系,共同绘制出一面五星红旗。

我这里故意把绘制速度设置小一点,读者在运行过程中可以清楚地看到绘制的过程,点的移动、线的绘制可以看得很清楚。

运行结果。

运行结果

备注

1、Python 官方网站参考:Python

2、在 Windows 平台安装 Python 需要注意版本的选择,是 32 位还是 64 位要搞清楚,不然后续会引发一系列麻烦,哪怕卸载重装也会有麻烦。

虾丸派 wechat
扫一扫添加博主,进技术交流群,共同学习进步
永不止步
0%