欢迎
看简单规则如何转化为复杂艺术。这就是分形生成:几条指令创建无限复杂性。
分形使用称为L-系统的东西:你从简单图案开始,反复应用相同规则。每个迭代添加更多细节,创建看起来有机而复杂、却遵循精确数学规则的结构。
只需几分钟,你就能理解如何创建这样的图案。不需要数学背景。只需跟随并用互动例子实验。
让我们从基础开始。
绘制线条
f 在当前方向向前绘制一条线。你可以使用任何小写字母 (a-z) 来绘制线条;它们都一样工作。
+ 将绘制方向顺时针旋转指定角度。把它想象成转动罗盘或旋转你绘制的笔。
规则 f+f 意思是:绘制一条线,顺时针旋转 90°,然后绘制另一条线。这创建 L 形。
转弯方向
+ 将绘制方向向右转(顺时针)
- 将绘制方向向左转(逆时针)
我们的规则 f+f-f-f+f 解读为:向前绘制,转右,向前绘制,转左,向前绘制,转左,向前绘制,转右,向前绘制。图案有 5 条线,之间有转弯。
迭代:魔力所在
这里简单变得复杂。在每个迭代中,每个 f 被整个规则替换。这是分形的核心概念:在不同尺度上的自相似性。
迭代 2:每个 f 变成 f+f-f-f+f,所以我们有 5×5 = 25 个线段。迭代 1 的形状出现 5 次,每个原始线一次。
迭代 3:再次替换,得到 5×5×5 = 125 个线段。图案在更小尺度重复。
不可见移动
f 或任何小写字母 (a-z) 向前移动并绘制可见线条
F 或任何大写字母 (A-Z) 向前移动但不绘制任何东西
我们的规则 f+f-G-f+f 有一个不可见的中间线段,其中 G 移动但不绘制。图案中有间隙。
添加颜色
< 切换到调色板中的上一个颜色
> 切换到调色板中的下一个颜色
规则 f+>f->f->f+>f 在绘制每个线段时循环颜色。每条线用不同颜色绘制,创建彩虹效果。
这个例子使用 5 种颜色(白色、红色、绿色、蓝色、黄色)创建鲜艳的调色板。在完整编辑器中,你可以定义自己的调色板,使用任意数量的颜色。创建渐变、互补方案,或任何符合你艺术愿景的东西。
分支
[ 将当前位置和角度保存到内存 栈
] 恢复从 栈 保存的最后一个位置和角度
f - 向前绘制
[ - 保存位置
+f - 右转并绘制(向右分枝)
] - 返回保存的位置
-f - 左转并绘制(向左分枝)
完整系统
现在是完整图景。每个 L 系统分形都有两个基本组件:
公理: 迭代 0 的起始序列。这是你的起点。例如:x
规则: 定义每个字母在每次迭代中如何变化的转换规则。例如:x=f[+x][-x] 表示“将每个 x 替换为 f[+x][-x]”
所示树使用公理 x 和两条规则:x=f[+x][-x](x 变为分枝结构)和 f=ff(f 长度加倍)。观察发生什么:迭代 1 替换 x,迭代 2 替换新的 x 和 f,依此类推。
轮到你了
恭喜!你现在理解了简单规则如何创造无限复杂性。所示分形是著名的 龙曲线,一个优雅图案,仅用两条简单规则和 12 次迭代创建。
你已经学习了绘制和移动、旋转、迭代、分枝、颜色以及完整的 L 系统结构。这些概念以无限方式组合,创造从几何图案到有机植物状结构的一切。
准备好创作自己的数学艺术了吗?完整编辑器让你完全控制公理、规则、颜色、角度、线条粗细等。你可以保存创作、与他人分享,并探索社区制作的分形。
现在开始创作 看看你能发现什么美丽的图案。别害怕实验。有些最惊人的分形来自于意想不到的组合!