实现了一个基于LS(L系统)的二维分形演示程序。
实现这个演示程序的第一步当然是理解LS文法。咋看之下似乎有点难度,其实一点也不难。
举个例子就明白了:
LS文法先定义了绘图规则:
F:以当前方向前进一步,并画线;
f:以当前方向前进一步,不画线;
+:逆时针旋转角;
-:顺时针旋转角;
[:将海龟当前信息压栈;
]:将“[”时刻的海龟信息出栈。
Koch曲线的LS文法如下:
w:F(初始字母)
a :60(旋转角度)
P:F → F + F - - F + F(F的替代文法)
根据这一文法生成Koch曲线的步骤(假设迭代两次):
第一步: 得到迭代两次的文法。
第一次迭代结果:
F + F - - F + F
第二次迭代结果:(第一次迭代得到的结果的每一个F用规则