任务:绘制如图所示的多角星
绘制多角星的功能可以视为将画笔沿逆时针方向旋转固定角度画直线(黑色)的操作,直到当前位置的绝对值小于1时就结束绘图,之后在画好的图形上填充颜色(红色)即可。
此多角星绘制的过程中涉及到的turtle模块中的函数及说明如下:
- color():设置画笔颜色和填充颜色。
- begin_fill():开始填充。
- end_fill():停止填充。
- forward():将画笔向前方移动指定的距离。
- left():将画笔逆时针旋转指定的角度。
- pos():获取画笔当前的位置。
- done():启动事件循环,必须位于末尾位置。
先上代码:
import turtle
turtle.color("red")
turtle.fillcolor("red")
turtle.begin_fill()
turtle.left(30)
turtle.forward(200)
for i in range(11):
turtle.left(150)
turtle.forward(200)
turtle.end_fill()
turtle.mainloop()
运行如下:
笔记要点:
1.画笔对应的光标默认是在画布的中心,方向默认是水平向右。
2.使用turtle.forward()制笔前进指定距离,移动的单位是像素,如:
turtle.forward(150)
3.turtle.left() / turtle.right()表示画笔逆时针/顺时针的旋转角度,如:
turtle.left(30)
turtle.forward(150)
表示逆时针旋转30°
思路
小学学过一笔画成五角星
要绘制任务所示的多角星就有头绪了,同理,我们也可以一笔画成12角星。
思路如下:
1.首先求出每个角的度数:30°;
2.让海龟(画笔)走动200像素后,逆时针旋转150°,继续走动200像素;
3.重复步骤2十次即可。
写完后感觉不太对劲,内部并没有填充满,怀疑自己写错了,于是找了其他博文看,他们的运行后跟我的一样。估计是版本不同,我用的python3。
个人笔记,仅供参考。欢迎指正!
参考:
https://blog.csdn.net/yw1990128/article/details/129474600