Python极客项目编程(第2版)
上QQ阅读APP看书,第一时间看更新

1.6 实验

学会如何绘制科赫雪花后,来看看另一个有趣的分形——谢尔平斯基三角形,它是以波兰数学家瓦茨瓦夫·谢尔平斯基(Wacław Sierpiński)的名字命名的,其形状如图1.7所示。

图1.7 谢尔平斯基三角形

请尝试使用海龟绘图法绘制谢尔平斯基三角形。可像绘制科赫雪花时那样使用一种递归算法。如果仔细观察图1.7,将发现大三角形可被分成3个小三角形,并在中央形成一个倒三角形孔洞;而每个小三角形本身又能被分成3个更小的三角形,同样在中央形成一个倒三角形孔洞,以此类推。这提供了该如何拆分要使用的递归算法的线索。

这个问题的解决方案可见本书配套源代码中的“/koch/koch.py”。