欢迎

看简单规则如何转化为复杂艺术。这就是分形生成:几条指令创建无限复杂性。

分形使用称为L-系统的东西:你从简单图案开始,反复应用相同规则。每个迭代添加更多细节,创建看起来有机而复杂、却遵循精确数学规则的结构。

只需几分钟,你就能理解如何创建这样的图案。不需要数学背景。只需跟随并用互动例子实验。

让我们从基础开始。

绘制线条

f 在当前方向向前绘制一条线。你可以使用任何小写字母 (a-z) 来绘制线条;它们都一样工作。

+ 将绘制方向顺时针旋转指定角度。把它想象成转动罗盘或旋转你绘制的笔。

规则 f+f 意思是:绘制一条线,顺时针旋转 90°,然后绘制另一条线。这创建 L 形。

试试角度滑块,看改变旋转角度如何变换图案。在 90° 时得到直角,在 60° 时得到更锐利的弯曲,在 180° 时线条走向相反方向。

转弯方向

+ 将绘制方向向右转(顺时针)

- 将绘制方向向左转(逆时针)

两个符号都旋转相同的角度量,只是方向相反。这让你创建对称图案和闭合形状。

我们的规则 f+f-f-f+f 解读为:向前绘制,转右,向前绘制,转左,向前绘制,转左,向前绘制,转右,向前绘制。图案有 5 条线,之间有转弯。

试试角度滑块。在 90° 时创建方形锯齿形状。在 60° 时得到更锐利的角度,创建不同图案。在 120° 时形状扩展更宽。实验看看角度变化如何显著影响最终形式!

迭代:魔力所在

这里简单变得复杂。在每个迭代中,每个 f 被整个规则替换。这是分形的核心概念:在不同尺度上的自相似性

迭代 1:f+f-f-f+f(5 个线段的简单形状)
迭代 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] 分解为:
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 系统结构。这些概念以无限方式组合,创造从几何图案到有机植物状结构的一切。

准备好创作自己的数学艺术了吗?完整编辑器让你完全控制公理、规则、颜色、角度、线条粗细等。你可以保存创作、与他人分享,并探索社区制作的分形。

现在开始创作 看看你能发现什么美丽的图案。别害怕实验。有些最惊人的分形来自于意想不到的组合!