学径 LearnPath

海龟几何

1 / 1 · ← → 翻页

阅读模式

第 11 课

海龟几何:用运动写出形状

形状是一串指令的痕迹。

西摩·帕尔特
西摩·帕尔特。Matematicamente.it。来源:Wikimedia Commons,CC BY-SA 3.0。

导言

课程目标

相对运动把几何变成过程。

位置与朝向合在一起,才是状态。

画完必须把姿态还原。

现象

几何可以跟着身体走

西摩·帕尔特
西摩·帕尔特。Matematicamente.it。来源:Wikimedia Commons,CC BY-SA 3.0。

前进、转向、再前进。

思想写成动作,动作留下形状。

原理

默认朝东,树要朝北

0∘0^\circ 是正东。

向上画:先 left(90)。

例证

两条原语

python
import turtle

t = turtle.Turtle()
t.forward(80)
t.left(90)
t.forward(80)
  • forward:改位置
  • left:改朝向

请打开「在线 IDE」,当场运行。

原理

状态:位置与朝向

只记得位置,下一步走错方向。

只记得朝向,线画在错误的点上。

二者合称姿态。

例证

正方形:同一规则四次

python
for _ in range(4):
    t.forward(80)
    t.left(90)
  • 走完应回到起点
  • 朝向也应闭合

原理

字母 Y:一枝画完必须退回

左枝画完,海龟在左枝顶端。

不退回,右枝从错误的地方长出。

位置回家与朝向回家,是两步。

例证

draw_y:姿态是接口

python
def draw_y(length):
    t.forward(length)
    t.left(30)
    t.forward(length * 0.7)
    t.backward(length * 0.7)
    t.right(60)
    t.forward(length * 0.7)
    t.backward(length * 0.7)
    t.left(30)
    t.backward(length)

强调最后几行还原姿态。

辨析

为何右转到 60°

海龟仍偏左 30∘30^\circ。

要从偏左转到偏右 30∘30^\circ,相对转角是 60∘60^\circ。

状态不会自己复位。

实践

本节练习

先左转 90∘90^\circ,朝北。

循环三次:前进 80,左转 120∘120^\circ。

看是否回到起点,朝向是否仍朝北。

请打开「在线 IDE」。

小结

本节要点

形状是运动的痕迹。

姿态 = 位置 + 朝向。

一枝画完,退回分叉。

下一课

下一课

同一条规则,作用在更短的枝上。

递归与分形树。

已到最后一页。可按 ← 回顾,或切换回阅读模式。