无需登录 数据私有 本地保存

L-system编辑器 - 自定义规则绘制分形

13
0
0
0
📐 经典预设
🔤 公理 (Axiom)
📋 替换规则
⚙️ 参数
0 3 7
字符串长度: -- 线段数: --
100%
🖱 滚轮缩放 · 拖拽平移 · 双击重置
常见问题与知识点
L-system(Lindenmayer system)由生物学家Aristid Lindenmayer于1968年提出,是一种形式化的字符串重写系统,最初用于模拟植物生长过程。它通过公理(初始字符串)替换规则进行迭代,生成复杂的字符串,再通过海龟图形解释将字符串转化为几何图形,从而生成分形和自然形态。L-system是分形几何的重要工具,广泛应用于计算机图形学、植物建模和建筑设计。
  • F — 向前移动并画线(核心绘制命令)
  • G — 同样向前移动并画线(部分系统中与F等价)
  • f — 向前移动但不画线(仅移动海龟位置)
  • + — 右转指定角度(顺时针)
  • - — 左转指定角度(逆时针)
  • [ — 保存当前海龟状态(位置+方向),入栈
  • ] — 恢复最近保存的海龟状态,出栈
  • 其他字母(如X、Y)通常为辅助变量,不绘制,仅参与规则替换
迭代次数越高,图形细节越丰富,但字符串长度呈指数增长。例如科赫雪花迭代6次可能产生数万个字符。过高的迭代次数会导致:①计算时间显著增加②浏览器可能变得卡顿③图形细节超出屏幕分辨率,视觉上不再有明显变化。建议从迭代3-5次开始尝试,逐步增加。本工具限制最大迭代次数为7次,以确保流畅体验。
创建自定义分形的步骤:①选择最接近的预设作为起点②修改公理(初始字符串)③添加或修改替换规则(格式:前驱→后继,如F→F+F-F);④调整角度参数(影响分支的展开程度);⑤逐步增加迭代次数观察效果。关键技巧:使用[和]括号实现分支结构,让分形看起来更自然。尝试不同的角度值(如25°、60°、90°、120°)会产生截然不同的几何风格。
X、Y等字母是辅助变量(非绘制字符)。它们在规则替换中起作用,但在海龟绘制阶段不产生任何线段。例如龙曲线使用FX作为公理,X→X+YF+规则中X被展开,最终产生F绘制命令。这种设计允许创建更复杂的递归结构——辅助变量控制"骨架"的展开逻辑,而F负责实际的绘制。这是L-system表达复杂分形(如植物分枝、空间填充曲线)的关键机制。
🖱 鼠标滚轮:以光标位置为中心缩放图形;🖱 拖拽:按住左键平移画布;🖱 双击:一键重置视图到最佳适配状态;📱 触摸屏:双指捏合缩放,单指滑动平移。右下角实时显示当前缩放比例。当图形因缩放或平移偏离视野时,点击"重置视图"按钮即可恢复。
L-system的应用非常广泛:🌿 植物建模(电影和游戏中的植被生成);🏗 建筑设计(生成有机形态的建筑结构);🔬 生物模拟(模拟植物生长、细胞分裂模式);🎨 生成艺术(创作复杂的分形艺术作品);📐 数学教育(直观展示分形几何和递归概念);🖥 程序化内容生成(自动生成大规模自然场景)。现代3D软件(如Houdini、Blender)中也有L-system插件用于程序化建模。