题目

用 Python Turtle 绘制下面的图形。

题目说明

这道题的图形由 4 个五角星组成,分别分布在右、下、左、上四个方向。海龟每次先从中心点走到一个方向的星形位置,画完五角星后退回中心点,再右转 90 度准备画下一个方向。

最终效果

Python 海龟绘图 100 题,第 26 题

Python 海龟绘图 100 题,第 26 题

知识点

  • 外层 for i in range(0, 4):控制 4 个方向。
  • t.fd(100):从中心点走到五角星的位置。
  • 内层 for j in range(0, 5):画出一个五角星。
  • t.bk(100):画完五角星后退回中心点。
  • t.rt(90):转到下一个方向。

绘图思路

可以把图形拆成 4 组相同动作。每一组先从中心向外画一条 100 像素的线,到达端点后画一个边长 50 的五角星。五角星画完会回到端点,再用 t.bk(100) 回到中心。最后右转 90 度,继续画下一组。

完整代码

Python
import turtle as t

for i in range(0, 4):
    t.fd(100)
    for j in range(0, 5):
        t.fd(50)
        t.rt(144)
    t.bk(100)
    t.rt(90)

关键步骤讲解

外层循环控制方向

外层循环执行 4 次,每次负责一个方向。右转 90 度后,海龟会依次朝向右、下、左、上四个方向。

先走到星形位置

t.fd(100) 从中心点向外画出一条线,也把海龟移动到五角星的起点。

内层循环画五角星

内层循环和第 25 题的五角星画法一样,连续画 5 条 50 像素线段,每次右转 144 度。

回到中心点

五角星画完后,海龟还在外侧端点。t.bk(100) 沿原方向后退,回到中心点,下一组图形才会从同一个中心出发。

常见错误

  • 忘记 t.bk(100):下一个五角星会从外侧继续画,中心不会对齐。
  • 把外层循环次数写成 5:会多画一个方向,覆盖已有图形。
  • 把内层循环次数写成 4:五角星画不完整。
  • t.rt(90) 放进内层循环:五角星的转向会被打乱。

练习

把外侧距离 100 改成 70130,观察四个五角星离中心的远近变化。再把五角星边长 50 改成 30,看看整体图形是否更紧凑。