LS文法构图算法(1) 简介
来源:互联网 发布:ie浏览器淘宝登录不了 编辑:程序博客网 时间:2024/05/22 07:54
文法构图算法是仿照语言学中的语法生成方法来构造图形的一种算法。
任何语言都是由一个字母集和一些构成有意义语句的文法规则组成的。
著名语言学家N.Chomsky在20世纪50年代给出了递归生成语法的方法,指定一个或几个初始字母和一组“生成规则”,将生成规则反复作用到初始字母和新生成的字母上,产生出整个语言。比如:
字母表:A, B
生成规则:A->AB
初始字母:A
那么会有以下的生成过程:A->AB->AAB->AAAB->AAAAB->……
L-System(LS)是形式语言的一个重要分支,被引入到算机图形学领域之后,LS成为文法构图算法中的一种。它的核心概念是重写,LS文法用字母表和符号串来表达生成对象的初始形式,然后根据一组产生式重写规则,将初始形式的每个字符依次替换为新的字符形式,以此过程反复替换重写,最后生成图形。
在二维平面上,LS文法的绘图过程,可以看成是一支笔在程序的控制下行动,每一次“行动”可以分为几种情况:
F :前进并画线
f :前进但不画线
+ :逆时针旋转delta角度
- :顺时针旋转delta角度
[ :将当前的方向和位置信息压栈
] :从栈中弹出上一次压入的方向和位置信息
以Koch曲线为例:
如图所示,这是一个Koch曲线的基本结构,其中的每一条线段都将被一个更小一些的Koch结构代替,这样一层一层地迭代下去,无穷无尽。Koch可以按照如下的LS文法来生成:
omega(初始形式) = F
delta(转角单位) = 60 (度)
P(替代规则) :F ->F-F++F-F
替代步骤:
第0次:F
第1次:F-F++F-F
第2次:F-F++F-F - F-F++F-F ++ F-F++F-F - F-F++F-F
……
- LS文法构图算法(1) 简介
- LS文法构图算法(2) Koch雪花
- LS文法构图算法(4) 分形树
- LS文法构图算法(3) Hilbert-Peano曲线
- 分形学习之LS文法构图
- LS文法绘图系统
- LS文法生成Hilbert-Peano曲线
- ls算法
- 文法系列之上下文无关语法简介
- LL(1)文法判定
- lua2.1的文法
- HDU1409-LL(1)文法
- LL(1)文法
- LL(1)文法生成器。
- LL(1)文法判断
- LL(1) 文法
- 上下文无关文法1
- LL(1) 文法分析器
- 文件上传组件
- 使用Spring的mappingDirectoryLocations来配置Hibernate映射文件
- 如何使用 .net 的TreeView控件
- effective stl读书笔记 —— Item 5
- effective stl读书笔记 —— Item 6
- LS文法构图算法(1) 简介
- Spring使用Jndi时的一点说明
- 命令行执行编译
- PetShop分析
- 几个匪夷所思的成人寓言
- 关于ID和类名
- 搬回老家了
- Files Created by Visual C++
- WebSphere Process Server 和 WebSphere ESB 中的发布/订阅交互