探索L系统:从理论到编程实践
1. 引言
L系统最初是作为一种数学形式主义被引入,用于描述植物的发育过程。如今,它已成为一种紧凑的符号表示法,可用于指定分形、嫁接体和植物模型,并且具备了高级编程语言中的一些特性,如参数。本文将探讨参数化L系统作为并行计算模型以及一类编程语言基础的可能性。
2. 扩展的必要性
原始定义的L系统基于带括号的字符串进行操作,例如字符串 A[B[C]D]E 表示一个拓扑树。然而,这种带括号的字符串在图形解释上存在歧义,因为它们不包含几何信息。早期的图形解释依赖绘图人员,后来Frijters和Lindenmayer等人提出了自动绘图算法,但这些算法存在局限性,无法精确表示某些结构。
为了克服这些问题,Prusinkiewicz提出了一种替代方法,将几何信息纳入L系统的字母表中,使用类似LOGO风格的海龟解释字符串。但这种方法也有不足,它要求所有线条和角度用全局定义单位的整数倍表示,导致许多简单图形无法精确表示,并且变量需要量化,可能增加系统复杂度。
Lindenmayer提出将数值参数与L系统符号关联,以解决这些问题。但早期的实现存在不一致性,没有形成统一的形式化观点。后来,Shebell、Chien以及Prusinkiewicz和Hanan等人独立提出了操作带参数符号的L系统定义。
3. 参数化L系统
参数化L系统操作参数化单词,即由带关联参数的字母组成的模块字符串。一个参数化OL系统被定义为有序四元组 G = (V, Σ, ω, P) ,其中:
- V 是系统的字母表
超级会员免费看
订阅专栏 解锁全文
1403

被折叠的 条评论
为什么被折叠?



