Python 海龟绘图详解——圆和圆弧绘制总结

海龟绘图详解 Ju 4年前 (2019-12-05) 2162次浏览 0个评论

在 Python 海龟绘图中,绘制圆形和圆弧有两种方法,在这里对绘制方法进行一个总结。

1. 官方使用的绘制方法 circle

circle 方法是 Python 官方使用的方法。circle(半径,度数)。起始位置在圆的最下方,逆时针方向绘制。

例如,在绘制半径为 100 的圆形的时候。使用方法为

t.circle(100)

在绘制半圆的时候,实际是 360 度的圆的一半,使用方法为

t.circle(100, 180)

实际上在这个地方 circle 方法有第三个参数,官方文档解释说,圆实际是以其内切正多边形来近似表示的,其边的数量由 steps 指定(第三个参数)。我们在这里不需要管第三个参数。使用前两个即可。

2. 使用循环绘制

利用循环的思想,当我们绘制多边形的时候,边数足够多的话,就逼近于圆了。

我们尝试绘制下 360 边形

for i in range(0,360):
    t.fd(1)
    t.rt(360/360)

这个地方有两个问题,一是,绘制速度慢,二是无法确定圆的半径。

绘制速度慢是因为我们实际上循环了 360 次,所以速度慢,可以考虑用 36 边形进行处理。

无法确定圆的半径可以通过计算来得到一个通解。

圆的周长是 2*Pi*r = 360*fd,fd = 2*Pi*r / 360 = 0.0174 * r,得到倍数是 0.0174,即在 fd 里填 0.0174*半径。

我们尝试绘制半径为 100 的圆形

for i in range(0,360):
    t.fd(0.0174*100)
    t.rt(360/360)

36 边形通过计算是 t.fd(0.174*半径)。

那么如何绘制半圆呢,实际上我们这个地方是通过循环的次数来控制圆的弧度。

使用方法为

for i in range(0,180):
    t.fd(0.0174*100)
    t.rt(1)

四分之一圆的话循环 90 次就可以了。

3. 两种方法的比较

在我个人教学中,推荐使用方法二。方法二是利用循环的思想逼近成圆。

理由是本身我们学习 Python 海龟绘图,更多的是为了熟悉角度知识,熟悉数值计算。

使用 for 循环绘制圆形,可以更好的理解逼近的思想以及熟悉循环的过程。虽然学生需要记忆数字 0.0174 以及写更多的程序,但是也更好的理解了程序本身。

同时,在方法二中,虽然使用 360 边形,速度会变慢,但是 360 和角度进行了结合,一圈是 360 度,旋转了 360 次。也方便进行计算。

对于方法一来说,需要通过调整半径和方向的正负来画圆,对于低年级学生来说,没有学习过负数的概念。而使用循环绘制圆,只有左右的概念。

4. 解答说明

Python 海龟绘图网已经进入到了圆的习题更新部分。

我会分别提供方法一和方法二的解答,供各位老师们选择授课。


玩转 Python 海龟绘图 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python 海龟绘图详解——圆和圆弧绘制总结
喜欢 (20)
[tesths]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址