本节书摘来自异步社区《Python极客项目编程 》一书中的第2章,第2.7节,作者 [美] Mahesh Venkitachalam,王海鹏 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.7 实验
下面有一些方法可以进一步尝试螺线。
1.现在你已知道如何画圆,请写一个程序来绘制随机的对数螺线。找到参数形式的对数螺线方程,然后用它来绘制螺线。
2.你可能已经注意到,画曲线时,海龟光标总是朝右,但这不是海龟移动的方式!请调整海龟的方向,在绘制曲线时,让它朝向绘制的方向(提示:每步计算连续点之间的方向矢量,用turtle.setheading()方法来调整海龟的方向)。
3.尝试用海龟绘制Koch snowflake(科赫雪花),它是利用递归(即调用自身的函数)的分形曲线。可以像这样组织递归函数调用:
# recursive Koch snowflake
def kochSF(x1, y1, x2, y2, t):
# compute intermediate points p2, p3
if segment_length > 10:
# recursively generate child segments
# flake #1
kochSF(x1, y1, p1[0], p1[1], t)
# flake #2
kochSF(p1[0], p1[1], p2[0], p2[1], t)
# flake #3
kochSF(p2[0], p2[1], p3[0], p3[1], t)
# flake #4
kochSF(p3[0], p3[1], x2, y2, t)
else:
# draw
# ...