简化您的工作流程:搜索 miniwebtool。
添加插件
主页 > 杂项 > 通用工具 > L-System分形生成器
 

L-System分形生成器

根据Lindenmayer系统(L-System)规则生成美丽的分形。选择一个经典预设(科赫雪花、科赫正方形、谢尔宾斯基三角形、龙形曲线、分形树、植物),或编写您自己的公理、产生式规则和海龟步进角度 —— 本工具可以扩展字符串、控制海龟移动,并渲染出带有动画绘制效果、按深度着色的SVG。

L-System分形生成器
尝试预设:
使用大写字母 FG 表示绘制笔画,使用任何其他字母(X、Y、A、B……)表示不绘制的重写符号。注释以 # 开头。
F 向前绘制 f 移动(不绘制) + 左转 - 右转 | 翻转 180° [ 入栈状态 ] 出栈状态
朝向 = 正东(曲线),90° = 正北(树木和植物向上生长)。迭代次数上限为 8 — 字符串长度会迅速爆炸。
服务端字符串重写 + 海龟绘图 → 可缩放 SVG。

Embed L-System分形生成器 Widget

L-System分形生成器

L-System分形生成器将 Lindenmayer 系统的语法转换为美观的、基于深度着色的动态 SVG 分形。选择一个预设 — 科赫雪花 (Koch snowflake)、谢尔宾斯基三角形 (Sierpinski triangle)、龙曲线 (Heighway dragon)、希尔伯特曲线 (Hilbert curve)、分形植物、树木或灌木 — 或编写您自己的公理和产生式规则,观看字符串爆炸式增长为自相似的形状。该工具在服务端扩展字符串,让虚拟海龟遍历每个符号,并将结果渲染为可缩放的 SVG,您可以下载、编辑或粘贴到幻灯片中。

什么是 L-System?

L-System(或 Lindenmayer 系统)是一种并行字符串重写语法,由匈牙利生物学家阿里斯蒂德·林登迈尔 (Aristid Lindenmayer) 于 1968 年发明,用于对植物和微生物的生长进行数学建模。它包含三个要素:一个公理(包含一个或多个符号的起始字符串)、一个或多个产生式规则(每个规则将单个符号映射到一个替换字符串)以及一种解释(在这里为海龟绘图 — 一只服从前进、左转、右转、入栈和出栈命令的虚拟画笔)。

要运行该系统,您从公理开始并并行应用规则 — 所有符号同时被替换,然后开始下一次迭代。经过几次迭代后,字符串变得极其庞大,并且呈现出明显的分形特征。当您将该字符串交给海龟时,就会呈现出具有自相似性的图形。

海龟符号一览

符号海龟执行的操作
F, G向前移动一步并绘制一条线。
f向前移动一步但不绘制。
+向左旋转您指定的角度(例如 25°、60°、90°)。
-向右旋转该角度。
|将朝向翻转 180°。
[将当前位置 and 朝向压入栈中 — 用于开始一个分支。
]从栈中弹出位置和朝向 — 返回到分支点。
X, Y, A, …其他字母:纯重写符号。它们会影响下一次迭代,但自身不绘制任何内容。

是什么让这款 L-System 生成器与众不同

逐笔动画绘制 使用 SVG stroke-dashoffset 动画观看每个分支层级按顺序出现。先绘制树干,然后是主分支,接着是小树枝 — 这完美地反映了重写的递归结构。您可以随时点击“重新播放”。
深度感知着色 每个笔画都知道自己的括号深度。植物预设使用棕到绿到蓝的调色板,使树干看起来真正像树干;曲线预设使用靛蓝到青色的渐变。可选的笔画渐细功能使分支在尖端变得更细。
迭代追踪 准确查看字符串在每次迭代中是如何增长的。追踪面板显示了字符串长度(通常每步增长 3-5 倍)以及每个中间字符串的前 120 个字符 — 让生成过程变得可见,不再隐藏。
十二种教学级预设 科赫雪花、科赫正方形、谢尔宾斯基三角形和箭头曲线、龙曲线、希尔伯特曲线、莱维 C 曲线、水晶、分形植物、树木、灌木和海藻 — 每一种都演示了不同的 L-System 机制。
产生式规则卡片 每个规则都以卡片形式显示,其中包含符号、箭头和替换字符串。公理拥有自己的琥珀色卡片。您可以一目了然地阅读语法,而无需从文本区域中反向推导。
SVG 和 PNG 导出 下载用于打印和幻灯片的纯净、无动画的 SVG,或者用于聊天和社交分享的 2 倍分辨率 PNG。还可以将 L-System 定义(公理、规则、角度、迭代次数)复制为纯文本,以便与同学分享。

重写是如何工作的(示例)

以公理为 F、规则为 F → F+F-F-F+F、海龟角度设置为 90° 的科赫曲线 (Koch curve) 为例。以下是字符串的演变过程:

  • 迭代 0: F — 1 个字符。
  • 迭代 1: F+F-F-F+F — 9 个字符。单个 F 变成了一个方形凸起。
  • 迭代 2: F+F-F-F+F + F+F-F-F+F - F+F-F-F+F - F+F-F-F+F + F+F-F-F+F — 49 个字符。迭代 1 中的每个 F 自身都已被替换为 F+F-F-F+F。
  • 迭代 3: 249 个字符。迭代 4:1,249 个字符。迭代 5:6,249 个字符。

这种增长是几何级数的:每次迭代都会将长度乘以 5(替换字符串的长度)。经过 5 次迭代后,海龟有数千个命令需要执行,结果就是清晰可辨的科赫分形 — 一条类似于海岸线的曲线,其分形维数为 log(4)/log(3) ≈ 1.26。

括号如何构建植物

如果没有括号符号 [ 和 ],每个 L-System 都只是一条连续不断的单一曲线。括号开启了分支功能:当海龟遇到 [ 时,它会将当前位置和朝向压入栈中,在括号内绘制分支,然后在遇到 ] 时弹回原处。规则 F → F[+F][-F]F 表示“每个向前笔画都会变成一个笔画、一个左分支、一个右分支和一个继续前进的笔画” — 这就是一棵树的配方。

分形植物预设极好地展示了这一点。它的规则 X = F+[[X]-X]-F[-FX]+X 使用双重括号来编码“分支中的分支”。经过 5 次迭代后,生成的字符串包含 11,000 多个符号和大约 1,000 多个括号对 — 海龟尽职尽责地执行入栈和出栈操作,绘制出一株蕨类植物。

L-System 的应用领域

  • 过程式植物生成: SpeedTree 和 Houdini 生态系统使用 L-System(及其随机、参数化和上下文相关扩展)来为电影和游戏种植森林、丛林和农田。
  • 建筑与城市建模: 源自 L-System 的基于规则的语法可以生成建筑物外墙、街道网络和整个过程式城市。
  • 生物学与形态学: 最初的应用场景 — 对藻类细胞的发育、植物的分支以及珊瑚和晶体的结构进行建模。
  • 计算机图形与 Demoscene 艺术: 用非常小的文件体积来紧凑描述复杂的分形曲线 — 一个 30 字节的规则就可以产生一个百万像素的图像。
  • 数学教育: 上下文无关并行语法的典型示例;连接形式语言与分形几何的直观桥梁。
  • 生成音乐与编舞: 相同的重写机制应用于音乐乐句或舞蹈动作,从而产生具有结构感且有机的作品。

设计您自己的 L-System

一些总能生成好看分形的经验法则:

  • 从小的开始。 新规则的 3 次迭代足以看清结构。只有在确定形状按照预期增长后,再增加迭代次数。
  • 对于曲线,选择能整除 360° 的角度(60°、72°、90°、120°)。对于植物,18° 到 30° 之间的角度可以产生看起来很自然的分支。
  • 使用不绘制的符号(如 X)来控制结构。规则 F → FF 只是将每个笔画加倍,但公理为 X 的规则 X → F+X[-X] 会创建一个分支形状 — F 绘制可见的线条,X 控制分支模式。
  • 保持括号平衡。 每个 [ 必须有一个匹配的 ]。该工具在绘制时允许不平衡的括号,但您会遇到意想不到的跳跃。确保每个 [ 都有一个 ] 配对。
  • 注意增长率。 如果您的规则将 F 替换为五个符号,则每次迭代都会将字符串乘以 5。F → FF+F-F+F 的 6 次迭代就已经超出了大多数渲染器的承受范围。

随机与参数化扩展

该工具中的确定性 L-System 是最简单的变体。现实世界中的植物建模者使用更丰富的语法:随机 L-System (stochastic L-systems) 为同一个符号的多个规则分配概率,因此每株植物都略有不同。参数化 L-System (parametric L-systems) 为符号附加数值(分支的长度或厚度),并允许规则读取和修改它们。上下文相关 L-System (context-sensitive L-systems) 允许规则仅在其符号具有特定邻居时才触发。这些都可以将静态分形变成一个可以生长、反应和老化的系统。

常见误区

  • “迭代次数越多越好看”: 错误。超过五或六次迭代后,笔画会重叠,细节反而会丢失。最佳迭代深度取决于规则 and 显示分辨率。
  • “L-System 只能画植物”: 它们可以描述任何自相似曲线。科赫曲线、龙曲线、谢尔宾斯基垫片 — 全都是 L-System。
  • “必须使用括号”: 不需要。像科赫、龙曲线和莱维这样的单笔画曲线不需要括号。只有在需要分支时才需要括号。
  • “所有分形都具有相同的分形维数”: 错误。科赫的维数 ≈1.26,龙曲线的维数是 2,谢尔宾斯基的是 ≈1.58,希尔伯特曲线的逼近 2 — 每个规则都有自己的维数,这取决于字符串的增长方式与海龟移动距离的对比。

常见问题解答

什么是 L-System?

L-System(或 Lindenmayer 系统)是一种并行字符串重写语法,由生物学家阿里斯蒂德·林登迈尔 (Aristid Lindenmayer) 于 1968 年发明,用于对植物生长进行建模。它从一个公理(一个短字符串)开始,重复应用将单个符号替换为更长字符串的产生式规则,然后将最终的字符串解释为海龟绘图命令。结果是一个自相似的分形。

这些符号是什么意思?

F 和 G 是绘制笔画(海龟向前移动并绘制一条线)。f 是静默移动(向前移动但不绘制)。+ 将海龟向左旋转您指定的角度,- 将其向右旋转,| 将其翻转 180 度。[ 将海龟的位置和朝向压入栈中,] 将其弹回。所有其他字母(X、Y、A、B……)都是仅重写符号 — 它们会影响下一次迭代,但不会绘制。

为什么 L-System 擅长对植物进行建模?

括号符号 [ ] 让海龟能够记住并恢复其位置,因此单个规则可以产生分支。像 F = F[+F][-F]F 这样的规则会绘制一根茎,向两个方向分支,然后继续 — 这正是植物生长的方式。通过稍微不同的规则和角度,相同的引擎可以生成蕨类植物、灌木、树木、海藻和根系。

规则中 F 和 X 有什么区别?

F 既是一个绘制符号(当海龟看到 F 时它会绘制一条线)又是一个重写符号(规则可以在左侧匹配 F)。X 是一个纯重写符号 — 当海龟在绘制过程中看到 X 时,它什么都不做。当您想要一个控制结构而不被绘制出来的符号时,X 非常有用。

我应该使用多少次迭代?

对于大多数预设,4-6 次迭代就能产生可辨认的分形。字符串长度呈指数级增长,因此从 6 次迭代增加到 7 次可能会使工作量乘以 3-5 倍。该工具将迭代次数限制为 8 次,重写后的字符串限制为 250,000 个字符,以保持渲染的响应速度。

基于深度的着色是由什么控制的?

每个 [ 都会将海龟推入更深的括号层级;每个 ] 都会弹回。达到的最深层级就是最大深度。选择“深度渐变”可以根据括号层级为每个笔画着色 — 非常适合植物,因为树干和分支自然处于不同的深度。

初始角度是如何工作的?

初始角度是海龟在第一步时所面对的方向。0° 表示正东(向右)— 大多数曲线都使用它。90° 表示正北(向上)— 植物和树木使用它,以便它们朝向画布顶部生长。尝试更改任何预设上的初始角度以旋转整个图形。

我可以下载分形吗?

可以。下载为 SVG 格式可在打印、演示和激光切割中获得清晰的缩放效果,下载为 PNG 格式便于在聊天和社交媒体上分享。“复制”按钮可复制完整的 L-System 定义(公理、规则、角度、迭代次数),以便您可以将其粘贴到笔记或其他工具中。

最大复杂度是多少?

最多支持 8 次重写迭代、扩展字符串中包含 250,000 个字符、60,000 个绘制线段以及 12 个产生式规则。这些上限使 SVG 足够轻量,从而可以流畅地渲染和下载。对于更大的网格,请考虑使用桌面端 L-System 工具,例如 cgkit 或 Houdini。

如果我的括号不平衡会怎么样?

未闭合的 ](没有匹配 of [)会被静默忽略 — 海龟会留在原处。未闭合的 [(没有结束的 ])意味着海龟永远不会执行出栈操作,因此它会一直向前绘制,而永远不会返回到分支点。该工具总是会完成绘制,但结果可能与您的预期不符。请确保每个 [ 都有一个 ] 与之匹配。

什么是海龟绘图解释器?

它是一个虚拟画笔,服从来自字符串的移动命令。这个名字源于 Logo 编程语言。海龟有一个位置和一个朝向(它面对的方向)。每个 F 都会使其在当前朝向上面前移动一步;+ 和 - 会旋转朝向。海龟正是将扁平的字符串转化为二维图形的关键所在。

为什么我的分形看起来被挤压了?

该工具会自动将图形自适应到画布中,同时保持宽高比,因此图形会缩放但不会变形。如果分形在视觉上看起来不平衡,可能是规则本身的原因 — 例如,龙曲线的宽度大于高度,这是正确的。增加迭代次数可以查看形状的收敛情况。

引用此内容、页面或工具为:

"L-System分形生成器" 于 https://MiniWebtool.com/zh-cn/l-system分形生成器/,来自 MiniWebtool,https://MiniWebtool.com/

由 MiniWebtool 团队制作。更新于:2026-05-20

其他相关工具:

通用工具:

常用工具:

随机信用卡生成器MAC地址查找相对标准偏差计算器彩票号码生成器网址提取器CAGR计算器英尺英寸转换为厘米太阳、月亮与上升星座计算器 🌞🌙✨VAT计算器真心话大冒险生成器比例计算器百分比折扣计算器样本量计算器HEX计算器SRT转为TXT工具🌡️ 体感温度计算器定期存款计算器二进制计算器随机选择器视频转图片提取器音频提取器MAC地址生成器毛利率计算器MAC 地址分析工具随机字符串生成器分数计算器随机IMEI生成器cpm计算器随机数字选择器血糖转换器音频分割器时间持续计算器FPS 转换器kg到lbs转换器厘米到英尺和英寸转换器图片打码工具斜边计算器随机扑克牌生成器圆计算器年龄计算器百分比变化计算器体脂百分比计算器合并视频对数计算器最简分数计算器调整视频速度磅转千克转换器卡方检验计算器厘米到英寸转换器凯利公式计算器随机化数字随机分组生成器Facebook用户ID查询英尺到米转换器图片压缩器闰年清单DOY日历t检验计算器月亮星座计算器椭圆周长计算器按字符数换行导线磁场计算器个人贷款计算器年金现值计算器随机名字选择器PSI 转 Bar 转换器unix时间转换器位数计算器标准偏差计算器 - 高精度英寸到厘米转换器SHA256 哈希生成器🎮 游戏灵敏度转换器多项式展开计算器百分比增长率计算器为图片添加文字质数检查器填字游戏制作器One Rep Max (1RM) 计算器三角函数绘图器SRT合并工具srt时间偏移年度天数计算器 - 今天是今年的第几天每个月的天数卧推计算器根式化简器分贝 (dB) 计算器原根计算器Log Base 10 计算器方差计算器 高精度百分比到ppm转换器逻辑门模拟器随机装备生成器kpa到psi转换器随机声音频率生成器圆形面积计算器词频分析器随机字母生成器两个日期之间函数绘图器罗马数字转换器随机超能力生成器变异系数计算器MD5哈希生成器利润计算器模计算器不可见字符移除器泰勒级数计算器📅 日期计算器极限计算器相关系数计算器余弦定理计算器百分比增加计算器百分比计算器线性回归计算器随机ip地址生成器随机RPG角色生成器随机虚假地址生成器伊斯兰历转换器因子计算器配色方案生成器黄金分割计算器商和余数计算器工资转换计算器指数计算器-高精度排序数字积分计算器AI改写工具atan2计算器日历代数表达式简化器删除线文字生成器图片分割器斜率截距式计算器沸点计算器磅到克转换器组合计算器坡度与倾斜度计算器最小公倍数计算器随机域名生成器BMR计算器RC时间常数计算器凯撒密码工具小数时间转换器英亩到公顷转换器视频分割器逆拉普拉斯变换计算器随机颜色生成器椭圆面积计算器股票平均成本计算器IPv4/IPv6到十六进制转换器参数曲线绘图器弧长计算器快速傅里叶变换FFT计算器按位计算器极坐标方程绘图器直角三角形计算器石头剪刀布生成器螺栓扭矩计算器随机小数生成器💧 露点计算器为视频添加水印数独生成器与求解器条形码生成器WHtR计算器两点间距离计算器克到磅转换器圆柱体体积计算器 高精度希伯来历转换器平方根计算器旋转视频行数统计工具误差函数计算器质数分解计算器随机PIN生成器AI Token 计数器AI标点符号添加器分数百分比转换器双曲函数计算器反向文字幻方生成器🎰 抽卡保底计算器数据传输速率转换器股息收益率计算器角速度计算器隐含波动率计算器Argon2哈希生成器MP3循环器⏱️ 倒计时器利率计算器⏱️ 在线秒表翻转视频获取字符串长度镶嵌图案生成器随机电影选择器音节计数器骰子概率计算器GIF 转 MP4 转换器HTML 到文本转换器npv计算器Webhook测试器刺绣线长度计算器树脂浇注用量计算器串珠图案计算器陶土收缩率计算器折纸纸张尺寸计算器被子滚边计算器十字绣绣线计算器针织图案计算器编织针尺寸转换器钩针尺寸转换器马匹干草计算器宠物航空旅行航空箱尺寸查询器爬虫栖息地UVB计算器鸟笼尺寸计算器鱼缸加热棒瓦数计算器猫砂盆数量计算器前照灯光束距离计算器发动机压缩比计算器轮胎花纹磨损计算器挂车舌重计算器车辆重量分布计算器旅行费用分摊计算器刹车距离计算器工伤赔偿计算器遗嘱资产分配计算器商标分类查询工具专利申请费计算器销售税关联检查器刑期减免计算器诉讼时效计算器Airbnb 定价优化器室友房租分摊计算器Section 8 租金计算器BRRRR 方法计算器现金对现金回报率计算器租金收益率计算器1031 交换计算器财富增长可视化工具午餐花费计算器健身房 vs 家庭健身花费计算器咖啡花费计算器远程办公省钱计算器副业ROI计算器订阅费用追踪器SaaS定价计算器自由职业项目报价计算器烟熏木材搭配指南发酵时间计算器腌制时间计算器饮食限制食谱筛选器香料替代查找器咖啡因半衰期追踪器标准杯计算器葡萄酒搭配建议器攀岩难度等级转换器自行车齿轮比计算器钓鱼结强度计算器瑜伽体式保持计时器游泳SWOLF计算器跑步成绩预测计算器拳击出拳力量计算器橄榄球得分计算器板球得分率计算器足球 xG预期进球计算器网球计分器Wells评分计算器 (DVT/PE)格拉斯哥昏迷评分计算器阿普加评分计算器FFMI计算器库珀12分钟跑步计算器一英里步行测试Rockport计算器瘦体重力量计算器碳水化合物胰岛素比例计算器胰岛素敏感系数计算器农历转换器跨文化年龄计算器多久以前计算器还有多久倒计时计算器日期模式生成器中间日期计算器日期添加工作日工作日计算器句子长度方差分析器海明威风格可读性编辑器发音音标转换器维吉尼亚密码工具埃特巴什密码工具ROT13编码解码器EXIF数据查看与移除工具猪拉丁文翻译器倒推首字母缩写生成器首字母缩写生成器全字母句检查器漏字文检测器图像转SVG描摹器图片转 ASCII 艺术转换器JSON Schema 生成器TypeScript 在线演练场Less 到 CSS 编译器SCSS转CSS编译器SVG 转 React/JSX 转换器查询字符串生成器URL解析器UUID验证和解码器HTTP状态码参考cURL命令构建器谢尔宾斯基三角形生成器3D曲面绘图器朱利亚集合生成器曼德博集合探索器L-System分形生成器Delaunay 三角剖分生成器Voronoi 图生成器万花尺图案生成器六西格玛过程能力计算器帕累托图生成器NPS净推荐值计算器留存率同期群计算器客户流失率计算器客户获取成本CAC计算器客户终身价值 CLV 计算器转化率计算器A/B测试样本量计算器A/B测试显著性计算器透镜方程计算器电场计算器库仑定律计算器斯涅尔定律计算器惯性矩计算器向心力计算器单摆周期计算器弹簧劲度系数计算器多普勒效应计算器索提诺比率计算器特雷诺比率计算器股票贝塔系数计算器通胀保值美国国债 (TIPS) 计算器房贷重新摊还计算器远期利率计算器债券久期计算器 (麦考利和修正)债券凸性计算器固定指数年金计算器变额年金计算器反向抵押贷款计算器年金支付计算器日本算盘模拟器俄罗斯农民乘法吠陀数学技巧计算器古埃及乘法计算器罗马数字数学求解器心算训练器乘法口诀表测验进位与借位可视化工具数的分合生成器硬币应用题求解器距离速度时间三角形计算器工作效率问题求解器混合问题求解器年龄问题求解器火车相遇问题求解器补水计算器配速卡路里计算器药物剂量计算器酒精卡路里计算器身体重塑计算器随机辩论话题生成器随机猫狗名字生成器随机圣经经文生成器随机数学题生成器随机段落生成器随机英文句子生成器砾石、砂和表土计算器钢材重量计算器管道流量计算器梁荷载计算器美元换黄金转换器期权概率计算器股票拆分计算器员工持股计划计算器发票滞纳金计算器自由职业者时薪计算器租赁与购买对比计算器高级小费分摊计算器装箱清单生成器时差反应计算器旅行预算计算器飞行距离计算器热损失计算器发电成本计算器用水量计算器家电用电成本计算器家庭能源审计计算器太阳能投资回报率计算器太阳能板计算器堆肥CN比计算器草坪肥料计算器霜冻日期计算器高床种植箱土壤计算器NPK肥料计算器种子发芽率计算器视频比特率计算器音乐调性转换器音乐BPM节拍点击器照片文件大小估算计算器百万像素到打印尺寸计算器裁切系数计算器曝光三角计算器车辆牵引能力计算器汽车租赁计算器0–60与四分之一英里计算器电动车充电时间计算器电动汽车续航计算器3D距离计算器环面计算器圆台计算器不规则多边形面积计算器正多边形计算器圆锥曲线识别器双曲线计算器长除法计算器Twitter/X 字符计数器YouTube评论抽选器YouTube标签提取器YouTube缩略图下载器youtube收益估算器