题目

用 Python Turtle 绘制下面的图形。

题目说明

这道题要画 5 条从同一个点发出的线段。每画完一条线段后,海龟要回到中心点,再转 45 度画下一条。只要保持“画出去、退回来、再转向”的节奏,就能得到发散线图案。

最终效果

Python 海龟绘图 100 题,第 29 题

Python 海龟绘图 100 题,第 29 题

知识点

  • t.fd(100):从中心点向当前方向画出一条线段。
  • t.bk(100):沿原路退回中心点。
  • t.lt(45)t.rt(45):每次改变 45 度方向。
  • 调整初始方向或使用 backward(),可以得到相同或相近的发散线效果。

绘图思路

先画一条 100 像素的线段,再用 t.bk(100) 回到原点。接着转 45 度,重复同样的动作。因为每条线都从同一个点出发,回到中心点这一步很关键。

完整代码

方法一

Python
import turtle as t

for i in range(0, 5):
    t.fd(100)
    t.bk(100)
    t.lt(45)

方法二

Python
import turtle as t

t.rt(180)
for i in range(0, 5):
    t.fd(100)
    t.bk(100)
    t.rt(45)

方法三

Python
import turtle as t

for i in range(0, 5):
    t.bk(100)
    t.fd(100)
    t.rt(45)

关键步骤讲解

方法一从默认方向开始

海龟默认面向右方。方法一先向右画第一条线,再回到中心点,每次左转 45 度,线段会依次向上方展开。

方法二先调整初始方向

方法二一开始用 t.rt(180) 让海龟转向左方,再每次右转 45 度。它改变的是起始方向和旋转方向。

方法三先用后退画线

方法三用 t.bk(100) 先向当前方向的反方向画线,再用 t.fd(100) 回到中心点。它和前两种方法一样,都保证每条线从同一个点出发。

回到中心点是关键

无论用哪种方法,画完一条线后都要回到中心点。如果海龟留在外侧端点,下一条线就不会从同一个点开始。

常见错误

  • 忘记 t.bk(100)t.fd(100) 回到中心:线段会连成折线。
  • 45 写成 90:线段之间的间隔会变大,只能画出几个直角方向。
  • 循环次数写成 4:会少一条线。
  • 方法二里忘记 t.rt(180):图形展开方向会和预期不同。

练习

把循环次数 5 改成 7,再把转角改成 30,观察发散线变密后的效果。也可以把线段长度 100 改成 60,看看图形大小如何变化。