type
Post
status
Published
date
May 26, 2025
slug
tools/lsys
summary
我制作了一个简单的3D L-System在线预览工具,可以直观地展示L-System生成的三维结构。下面我将介绍几种经典的L-System模型及其应用。通过这个工具,你可以更好地理解L-System如何描述复杂的自然形态。
tags
工具
L-System
category
工具分享
icon
password
3D L-System 在线预览平台
我制作了一个简单的3D L-System在线预览工具,可以直观地展示L-System生成的三维结构。下面我将介绍几种经典的L-System模型及其应用。通过这个工具,你可以更好地理解L-System如何描述复杂的自然形态。
L-System,全称Lindemayer System,来自《Algorithmic Beauty of Plants》,是由 Aristid Lindenmayer 发明的一种用于描述植物形态,细胞生长等分形结构的一种语法。
L-System 的核心思想是通过简单的替换规则和递归应用,创建复杂的自然结构模型。这种方法特别适合模拟植物生长、分形几何和其他自组织系统。通过调整参数和规则,我们可以生成从简单的几何形状到复杂的植物形态的各种结构。
DOL 系统 DOL Systems
名称:Koch曲线
公理:F-F-F-F
生成式:
- F = FF-F-F-F-FF
在L-System中,不同的符号代表不同的操作:
- F:向前移动一步,同时绘制一条线
- f:向前移动一步,但不绘制线
- +:向右旋转一个角度
- -:向左旋转一个角度
- [:保存当前位置和角度(入栈)
- ]:返回到之前保存的位置和角度(出栈)
- |:旋转180度
- ^:向上倾斜一个角度
- &:向下倾斜一个角度
- \:沿前进方向顺时针旋转一个角度
- /:沿前进方向逆时针旋转一个角度
例如,在Koch曲线的例子中:
- 从"F-F-F-F"开始(一个正方形)
- 每个F被替换为"FF-F-F-F-FF"
- "-"符号表示向左旋转,默认是90度
通过这种简单的替换规则,几次迭代后会形成复杂的Koch曲线图案。
随机系统 Stochastic Systems
随机L-System引入了概率元素,使每次生成的结构都略有不同,更接近自然界的变异性。在随机系统中,同一个符号可以有多个可能的替换规则,每个规则都有一定的概率被选中。这种随机性使得生成的模型更加自然,避免了完全确定性系统中可能出现的人工痕迹。
例如,一个模拟树生长的随机L-System可能如下:
名称:随机树
公理:F
生成式:
- F 0.33= F[+F]F[-F]F
- F 0.33= F[+F]F
- F 0.34= F[-F]F
这里,F有三种可能的替换规则,分别有33%、33%和34%的概率被选中。每次应用规则时,系统会根据这些概率随机选择一个替换规则,从而生成不同的结构。
参数化系统 Parametric Systems
参数化L-System在基础L-System的基础上引入了参数,使每个符号可以携带额外的数值信息。这种扩展使得模型能够表达更细微的变化和复杂的生长规则。在参数化系统中,符号可以有参数(如F(a,b)),替换规则可以包含条件表达式,以及参数之间的数学计算。
例如,一个简单的参数化L-System可能如下:
名称:参数化树
公理:F(1,10)
生成式:
- F(a,l) : a < 3 → F(a+1,l)[+F(a/2,l-2)][-F(a/2,l-2)]
- F(a,l) : a ≥ 3 → F(a,l-1)
上下文相关系统 Contextual Systems
上下文相关L-System是对基本L-System的扩展,其中替换规则依赖于符号的上下文环境。这种系统能够模拟更复杂的生物结构和生长模式。在上下文相关系统中,替换规则的形式为"左上下文 < 符号 > 右上下文",表示只有当符号处于特定上下文中时,才应用该替换规则。
例如,考虑以下上下文相关的L-System:
名称:简单细胞生长模型
公理:B
生成式:
- B < A > B = C
- A < B > A = C
- B = A
- A = AB
在这个例子中:
- 第一条规则表示,如果A左边是B,右边是B,则A替换为C
- 第二条规则表示,如果B左边是A,右边是A,则B替换为C
- 如果以上条件都不满足,则B替换为A
- 如果以上条件都不满足,则A替换为AB
这种上下文相关的规则能够模拟细胞分裂和组织形成过程中的局部相互作用,使模型更接近自然界中的实际生长过程。
3D L-System在线预览工具生成的树



- 作者:南山无物
- 链接:http://www.supony.top//article/tools/lsys
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。