实例2:绘制多角星
如果你喜欢作画,一定要尝试一下Python的内置模块——turtle模块,turtle是一个专门的绘图模块,你可以利用该模块通过程序绘制一些简单图形。
本实例要求编写程序,使用turtle模块绘制一个如图1所示的多角星。
-
-
-
- 多角星示例
-
-
实例目标
- 掌握模块的导入方式
- 掌握turtle模块的基本用法
实例分析
本实例的多角星需要借用turtle模块,大家可自行从官方文档中(https://docs.python.org/3.7/library/turtle.html#turtle.pos)了解turtle模块的基本用法,了解之后便可以使用turtle模块中的相关函数进行绘制。
绘制多角星的功能可以视为将画笔沿逆时针方向旋转固定角度画直线(黑色)的操作,直到当前位置的绝对值小于1时就结束绘图,之后在画好的图形上填充颜色(红色)即可。此多角星绘制的过程中涉及到的turtle模块中的函数及说明如下:
- color():设置画笔颜色和填充颜色。
- begin_fill():开始填充。
- end_fill():停止填充。
- forward():将画笔向前方移动指定的距离。
- left():将画笔逆时针旋转指定的角度。
- pos():获取画笔当前的位置。
- done():启动事件循环,必须位于末尾位置。
代码实现
完整的代码如下所示:
import turtle as t
t.color('black', 'red') # 设置画笔颜色、填充颜色
t.setup(450, 400) # 设置主窗口的大小为450*400
t.begin_fill() # 在绘制要填充的形状之前调用
while True:
t.forward(150) # 将当前画笔移动150个像素
t.left(150) # 将当前画笔逆时针旋转150度
if abs(t.pos()) < 1: # 若当前位置的绝对值小于1则跳出循环
break
t.end_fill() # 结束填充
t.done() # 停止画笔绘制,窗体不关闭
以上代码首先使用import语句导入了turtle模块,并起别名为t,其次调用color()函数分别设置了画笔颜色与填充颜色,调用setup()函数设置主窗口的大小,然后使用while语句绘制多角星:将当前画笔移动150像素画直线,逆时针旋转150度,判断当前画笔所处位置的绝对值是否小于1,小于1则结束循环,不小于1则重复上述步骤,最后调用done()函数停止绘制,保持主窗口不关闭。
代码测试
运行程序,绘制过程如图2所示。
-
-
-
- 多角星绘制过程
-
-