题目

用 Python Turtle 绘制下面的图形。

题目说明

这道题要画一个圆形。这里不用 circle() 命令,而是让海龟每次前进 1 像素,再右转 1 度。这样重复 360 次,海龟刚好转满一圈,许多很短的线段连起来就接近圆形。

最终效果

Python 海龟绘图 100 题,第 22 题

Python 海龟绘图 100 题,第 22 题

知识点

  • for i in range(0, 360):重复 360 次,让海龟转满一圈。
  • t.fd(1):每次只前进 1 像素,让线段足够短。
  • t.rt(360/360):每次右转 1 度。
  • 用很多条短线段可以画出接近圆形的曲线。

绘图思路

圆可以看成边数很多的正多边形。每条边越短,边数越多,图形看起来就越圆。代码把一圈分成 360 步,每一步前进 1 像素并转 1 度,最后形成一个近似圆。

完整代码

Python
import turtle as t

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

关键步骤讲解

把圆拆成很多小边

这段代码把圆拆成 360 条很短的线段。每条线段只有 1 像素,所以肉眼看起来像一条平滑的曲线。

每次只转 1 度

360/360 的结果是 1。循环执行 360 次后,海龟总共转过 360 度,刚好完成一整圈。

控制圆的大小

这里圆的大小主要由每次前进的距离决定。t.fd(1) 画出的圆比较小,改成 t.fd(2) 后圆会变大。

理解近似画法

计算机屏幕上的曲线本来就是由许多小段组成的。Turtle 通过不断前进和转向,也能模拟出圆形效果。

常见错误

  • 循环次数太少:只会画出一段弧线,无法形成完整圆。
  • 每次前进距离太大:图形会变得像多边形,圆不够平滑。
  • 转向角度写错:总转角不是 360 度时,图形可能闭合不了。
  • 忘记把前进和转向都放进循环:海龟只会执行一次动作。

练习

t.fd(1) 改成 t.fd(2),观察圆的大小变化。再把循环次数改成 180,看看只画半圈时会得到什么图形。