题目

用 Python Turtle 绘制下面的图形。

题目说明

这道题要画一条由短线段组成的虚线。每一段实线长度是 5 像素,每一段空白也是 5 像素。画实线时落笔,移动到空白位置时抬笔。

最终效果

Python 海龟绘图 100 题,第 24 题

Python 海龟绘图 100 题,第 24 题

知识点

  • t.pd():放下画笔,移动时会留下线条。
  • t.pu():抬起画笔,移动时不会画线。
  • t.fd(5):每次前进 5 像素。
  • 循环可以反复执行落笔画线、抬笔移动这两个动作。

绘图思路

虚线可以拆成很多个小单元。每个单元先落笔前进 5 像素,画出一小段实线;再抬笔前进 5 像素,留下空白。这个单元重复 10 次,就得到一条规则的虚线。

完整代码

Python
import turtle as t

for i in range(0, 10):
    t.pd()
    t.fd(5)
    t.pu()
    t.fd(5)

关键步骤讲解

画出一段实线

t.pd() 会放下画笔。接着执行 t.fd(5),海龟向前移动并画出 5 像素的短线。

留出一段空白

t.pu() 会抬起画笔。再次执行 t.fd(5) 时,海龟只移动,不会留下线条。

用循环重复虚线单元

一次循环会画出一段实线和一段空白。range(0, 10) 让这个单元重复 10 次,虚线长度也随之变长。

画笔状态要成对出现

落笔和抬笔要配合使用。只落笔不抬笔会变成连续实线,只抬笔不落笔就看不到线段。

常见错误

  • 忘记 t.pu():所有移动都会画线,结果变成一条实线。
  • 忘记 t.pd():海龟一直抬笔,屏幕上看不到线。
  • 把两个 t.fd(5) 改成不同数值后没有预期效果:实线和空白长度会变得不一样。
  • t.pu() 放在第一行:第一段也会变成空白。

练习

把循环次数 10 改成 20,观察虚线变长后的效果。再把实线长度改成 10,空白长度仍保留 5,看看虚线节奏有什么变化。