在 turtle 作图中,经常会遇到多边形。在这里对多边形的画法进行一个总结。
方法一 使用循环绘制
在 Python 海龟绘图中,可以使用循环绘制多边形。在这里可以利用公式 重复次数*转过角度=360。
例如,在绘制边长为 100 的五边形的时候。使用方法为
for i in range(0,5): t.fd(100) t.rt(360/5)
例如,在绘制边长为 60 的六边形的时候。使用方法为
for i in range(0,6): t.fd(60) t.rt(360/6)
此处在记忆中,可用三角形,正方形进行辅助记忆。
三角形重复 3 次,每次转过的角度为 120 度。
正方形重复 4 次,每次转过的角度为 90 度。
3*120=4*90=360。从而记忆 360 度这个关键角度。
在多边形绘制中,为什么转过的角度是 360/n 呢?
假设一个正多边形有 n 条边,正多边形的内角和为 $(n-2)*180$
那么每个角的度数则为 $\frac{(n-2)*180}{n}=180+\frac{360}{n}$
每个角的转角是 $180-(180-\frac{360}{n})=\frac{360}{n}$
方法二 使用 turtle circle 方法
使用 turtle 的 circle() 方法,可以进行绘制多边形。
circle() 函数有三个参数,依次是
- radius — 一个数值
- extent — 一个数值 (或 None)
- steps — 一个整型数 (或 None)
circle() 方法的本质是以其内切正多边形来近似表示圆。第一个参数为圆的半径,第二个参数是圆转过的角度,第三个参数为边的数量。在使用时,只填写第一个和第三个参数即可。具体使用方法如下。
例如,在绘制六边形的时候。使用方法为
t.circle(100,None,6)
但是此种方法无法在已有知识体系下明确多边形的边长(具体边长的值为 $d=2*{r}*{sin(\frac{180} {n})}$)
总结
两张方法都可以画出多边形。但方法二无法明确边长,因此推荐使用方法一完成日常绘图。