Python绘图指南:分形与数据可视化(全彩)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4 算法

我们可以在计算机上使用以下方法递归生成科赫曲线的生成元。

首先,将线段AB三等分,描画完第一个三分之一长度AC线段后,将画笔按逆时针方向旋转60°,接着描画三分之一长度CD线段,再按顺时针方向旋转120°,描画三分之一长度 DE 线段,最后按逆时针方向旋转60°,描画最后三分之一长度 EB线段,如图1-5所示。

图1-5 线段

具体步骤如下:

(1)假设线段AB初始长度为L,将线段AB三等分,每段的长度均为L/3,即线段ACCDDECEEB的长度是相同的,都为L/3;

(2)起始点为A点,画笔在A点的方向角度为0,也就是水平向右的方向;

(3)画笔从A点开始,向前描画L/3长度到达C点;

(4)在C点上,将画笔按逆时针方向(也就是向左)旋转60°,此时,画笔在C点的方向角度为60°,即与水平夹角为60°;

(5)画笔从C点开始向前描画L/3长度,到达D点;

(6)在D点上,将画笔按顺时针方向(也就是向右)旋转120°,此时,画笔在D点的方向角度为-60°,即与水平向下的夹角为60°;

(7)画笔从D点开始向前描画L/3长度,到达E点;

(8)在E点上,将画笔按逆时针方向(也就是向左)旋转60°,此时,画笔在E点的方向夹角为0,即水平向右的方向;

(9)画笔从E点开始向前描画L/3长度,到达结束点B点。