简化您的工作流程:搜索 miniwebtool。
添加插件
相关工具
谢尔宾斯基三角形生成器Delaunay 三角剖分生成器旅行商问题求解器 TSP📊 柱状图制作工具
主页 > 杂项 > 通用工具 > 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计算器SRT转为TXT工具相对标准偏差计算器真心话大冒险生成器随机扑克牌生成器定期存款计算器图片打码工具比例计算器血糖转换器kg到lbs转换器太阳位置计算器音频分割器MAC地址生成器随机字符串生成器毛利率计算器样本量计算器HEX计算器百分比增长率计算器百分比折扣计算器cpm计算器厘米到英尺和英寸转换器VAT计算器🎮 游戏灵敏度转换器t检验计算器农历转换器随机超能力生成器翻转视频随机IMEI生成器SHA256 哈希生成器随机选择器位数计算器斜边计算器调整视频速度为图片添加文字合并视频Git 命令生成器随机化数字FPS 转换器考拉兹猜想计算器srt时间偏移半衰期计算器百分比到ppm转换器根式化简器Facebook用户ID查询罗马数字转换器对数计算器误差函数计算器Log Base 10 计算器磅转千克转换器百分比计算器年金现值计算器颜料调色计算器心算训练器极坐标方程绘图器百分比变化计算器质数检查器💧 露点计算器URL Slug 生成器WHOIS查询利润计算器卡方检验计算器密码强度测试器黄金时刻和蓝调时刻计算器百分比增加计算器视频转图片提取器两点间距离计算器圆柱体体积计算器 高精度📅 日期计算器三角函数绘图器按位计算器Instagram用户ID查询One Rep Max (1RM) 计算器年度天数计算器 - 今天是今年的第几天相关系数计算器积分计算器随机坐标生成器图片分割器卧推计算器圆计算器圆锥展开图模板生成器图片压缩器随机餐点生成器DOY日历填字游戏制作器伊斯兰历转换器哥德巴赫猜想验证器组合计算器日历🖱️ 点击计数器镶嵌图案生成器随机分组生成器PSI 转 Bar 转换器分数计算器厘米到英寸转换器泰勒级数计算器随机装备生成器MAC 地址分析工具密码生成器英尺到米转换器MD5哈希生成器英寸到厘米转换器配色方案生成器随机域名生成器YouTube频道统计十字绣尺寸计算器康奈尔笔记生成器📈 折线图制作工具椭圆周长计算器楼梯计算器随机名字选择器csv转srt数字提取器递推关系求解器🥧 饼图制作工具体脂百分比计算器分贝 (dB) 计算器发音音标转换器条形码生成器自行车尺寸计算器3D距离计算器⏱️ 倒计时器最简分数计算器置信区间计算器随机写作提示生成器随机英文句子生成器高斯分布生成器CMYK 转换为十六进制转换器kpa到psi转换器十六进制转CMYK转换器平均值计算器平方根计算器视频分割器质数列表随机数学题生成器黄金分割计算器Mann-Whitney U 检验计算器删除空格复数计算器多项式展开计算器惯性矩计算器旋转视频沸点计算器IPv4/IPv6到十六进制转换器SRT合并工具佣金计算器新月和满月日历相同字母异序词生成器米到英尺转换器雷诺数计算器马丁格尔策略计算器Argon2哈希生成器Zalgo文本生成器双重积分计算器复利计算机密度计算器弧度到度转换器月亮星座计算器比例置信区间计算器随机颜色生成器F检验/F分布计算器亚马逊 FBA 计算器工资转换计算器循环播放视频日出日落计算器移除标点符号在线工具角速度计算器谐振频率计算器逻辑门模拟器随机虚假地址生成器AI Token 计数器AI健身计划生成器VTT转txt转换器WHtR计算器二次公式计算器年龄计算器快速傅里叶变换FFT计算器总和计算器摩尔斯电码生成器数据传输速率转换器数独生成器与求解器最小公倍数计算器百分比减少计算器竖式加减法计算器英亩到公顷转换器螺栓扭矩计算器质数因子计算器AI简历分析器Django密钥生成器Voronoi 图生成器为视频添加水印从视频中移除音频毫克到毫升转换器英里每小时转公里每小时转换器节到英里每小时转换器立方米转立方英尺立方英尺转立方码转换器平方英尺转平方米转换器平方米转平方英尺转换器盎司转毫升转换器毫升转盎司转换器加仑转升转换器升到加仑转换器千克到英石转换器英石转千克转换器英寸到毫米转换器毫米到英寸转换器英里转千米转换器千米转英里转换器华氏度到摄氏度转换器摄氏度转华氏度转换器背包尺寸计算器冲浪板体积计算器网球握把尺寸计算器头盔尺寸计算器手套尺寸计算器帽子尺码转换器滑雪板尺寸计算器滑雪板尺寸计算器速通分段计时器斯特伯福计分计算器飞镖残局计算器板球投球经济率计算器板球击球率计算器净得分率计算器KD比率计算器Elo 等级分计算器心率恢复计算器徒步时间计算器划船配速计算器跑步年龄分级计算器FTP功率区间计算器Beep 测试计算器ACFT分数计算器Wilks & DOTS 计算器轮毂偏距计算器轮胎负荷指数与速度等级查询每英里成本计算器租赁买断计算器辛烷值混合计算器二冲程机油混合计算器发动机排量计算器沙发过门计算器木柴考得计算器空气净化器CADR计算器除湿机尺寸计算器吊扇尺寸计算器窗帘尺寸计算器地毯尺寸计算器挂画高度计算器电视安装高度计算器电视尺寸计算器池塘容积和衬垫计算器泳池盐量计算器泳池容积计算器热水器尺寸计算器环氧树脂计算器栏杆立柱间距计算器踢脚线和装饰线条计算器壁板计算器露台木器染色剂计算器草籽计算器草皮计算器沥青计算器立方码计算器天线长度计算器电线管填充率计算器串联并联电容计算器感抗计算器房间照明计算器勒克斯转流明计算器流明转瓦特转换器发电机功率计算器mah到wh转换器三相功率计算器kVA计算器安培转瓦特计算器瓦特转安培计算器串联电阻计算器摩擦力计算器斜面计算器机械效益计算器声速计算器波速计算器浮力计算器终端速度计算器德布罗意波长计算器光子能量计算器emc2计算器时间膨胀计算器开普勒第三定律计算器逃逸速度计算器万有引力计算器比尔-朗伯定律计算器能斯特方程计算器渗透压计算器沸点升高计算器凝固点降低计算器百分比组成计算器当量浓度计算器质量摩尔浓度计算器pKa到Ka转换器亨德森-哈塞尔巴尔赫计算器理论产量计算器限制反应物计算器电子排布计算器交互式元素周期表AI教案生成器AI测验生成器引用生成器 (APA/MLA/Chicago)出勤率计算器AP分数计算器ACT分数计算器SAT分数计算器百分比转CGPA转换器CGPA转百分比转换器简易评分器 EZ Grader养育孩子成本计算器宝宝奶量计算器尿布尺寸计算器婴儿名字生成器宝宝眼睛颜色预测器儿童BMI百分位计算器儿童身高预测器hcg翻倍时间计算器试管婴儿预产期计算器着床计算器中国生男生女预测器ISO 8601 日期格式化工具儒略日转换器小睡计算器月相计算器世界时钟日期罗马数字转换器退休倒计时戒瘾天数计算器半岁生日计算器纪念日计算器周数计算器小费分配计算器电子邮件营销ROI计算器每条线索成本计算器营运资本计算器youtube收益估算器随机RPG角色生成器