Science 版 (精华区)
发信人: qpcwth (独翅鸟), 信区: Science
标 题: 《分形艺术》38
发信站: 哈工大紫丁香 (2001年11月03日18:13:29 星期六), 站内信件
第五章 林氏系统与迭代函数系统
5.1 林氏系统
林氏系统(通常称L系统)是林德梅叶1968年为模拟生物形态而设计的,后来史密斯于
1984年、普鲁辛凯维奇于1986年,分别将它应用于计算机图形学,引起生物学界和计算
机界人士 极大兴趣,一时发表了许多论文和专著。在国内《植物形态的分形特征及模拟
》(常杰(1962 - )等著)、《分形及其计算机生成》(齐东旭著)等书,都将L系统作为重
要内容讲解。
L系统实际上是字符串重写系统。我们把字符串解释成曲线(或者更准确地说,称作
图形),于是只要能生成字符串,也就等于生成了图形。L系统是极其有趣的,第一,用
这种方法能够生成许多经典的分形,第二,用它可以模拟植物形态,特别是能很好地表
达植物的分枝结 构。
从一个初始串(叫做公理)开始,将变换规则多次作用于其上,最后产生一个较长的
命令串,用它来绘图。作用一次,称作一级(order),一般说来选择的级数不宜太高,通
常选2-8级,最多15级。
L系统细说起来也有若干种,通常指“0L系统”。0L系统可定义为一个三元组〈V,ω
,P〉,设V表示“字母表”(alphabet),V^*表示V上的所有“ 单词”(words),ω∈V^*
是一个非空的单词,称作公理(axiom),P 包含于V×V^*是产生规则的有穷集。
显然0L系统是确定性系统,当且仅当对每一个c∈V,存在一个s∈V^*,使得 c→s.
L系统的符号串也称“龟图”(turtle),龟图的状态用三元组(X,Y,D)表示,其中X和
Y分别代表横坐标和纵坐标,D代表当前的朝向。令δ 是角度增量,h是步长。符号串的
图形学解释 (也可以有其他解释,这里只是一种可能的解释)见表5.1。
表5.1 L系统的符号规定与解释
符号 图形解释
F 从当前位置向前走一步,同时画线
G 从当前位置向前走一步,但不画线
+ 从当前方向向左转一个给定的角度
- 从当前方向向右转一个给定的角度
| 原地转向180°
[ Push,将龟图当前状态压进栈(stack)
] Pop,将图形状态重置为栈顶的状态,
并去掉该栈中的内容
\nn 增加角度nn度
/nn 减少角度nn度
Cnn 选择颜色nn
<nn 在此基础上增加颜色nn
>nn 在此基础上减少颜色nn
! 倒转方向(控制+,-,/)
@nnn 将线段长度乘以nnn,nnn也可以是简单函数
其他 也是合法的,主要用于获得复杂的解释
--
心事浩茫连广宇,于无声处听惊雷
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.229.154]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.604毫秒