Download presentation
Presentation is loading. Please wait.
1
Synthetic Topiary 人工合成的灌木裁剪生成法
2
1. L-System(L系统) id : lc < pred > rc : cond ! succ : prob
id:产品标记(Production Identifier) lc:左边内容 pred:前部 rc:右边内容 rc:条件 succ:后继 prob:产生这个后继的概率
3
1. L-System(L系统) L-system 1: w: A(1)B(3)A(5)
p1 : A(x) -> A(x+ 1) : 0:4 p2 : A(x) !->B(x -1) : 0:6 p3 : A(x) < B(y) > A(z) : y < 4 -> B(x + z)[A(y)] 可能结果: A(1)B(3)A(5) =) A(2)B(6)[A(3)]B(4)
4
1. Turtle结构 Turtle: 由一个位置向量P,三个互相垂直的方向向量H,U,L构成,如下图:
1. 1 模块F表示沿着当前方向画一条线 1.2 +,- ,/, \, &, ^分别表示绕相应轴旋转
5
3. L-System例子 L-system 2: w : A p1 : A -> F(1)?P(x, y) - A
p2 : F(k) =? F(k + 1)
6
3. L-System例子 L-system 2: w : A p1 : A -> F(1)?P(x, y) - A
p2 : F(k) =? F(k + 1) ?P(x, y) 称为疑问模块(Query Module) 它的值是由字符串翻译后得出的,取决于 当前Turtle在空间中的位置和朝向
7
3. L-System例子 L-system 3: w : A p1 : A -> [+B][-B]F?P(x, y)A
p2 : B -> F?P(x, p3 : ?P(x, y) : 4 𝑥 2 + 𝑦−10 2 > > [+(2y)F][-(2y)F]%
8
3. L-System例子 L-system 4: w : FA->P(x, y)
p1 : A >?P(x, y) : !prune(x, y) p2 : A >?P(x, y) : prune(x, y) -> T% p3 : F >T -> S p4 : F >S -> SF p5 : S -> 𝜖 p6 > S -> [+FA?P(x, y)] prune(x; y) = (x < -L/2)||(x > L/2)||(y < 0)||(y > L);
9
4. 随机树木模型 4 条植物学基本原理: 1、在生长初期k=1,树只有一个主枝,没有侧枝
4. 随机树木模型 4 条植物学基本原理: 1、在生长初期k=1,树只有一个主枝,没有侧枝 2、在接下来的每个时期,萌芽出现于上个时期新生长出的枝干末梢处。有一个常量bmax>1,表示最大分叉率 3、不管年龄和位置,所有枝干长度近似一样长l,最后会形成一个半圆形的树冠 4、树叶都是在最后一个枝干上长出的,形成一个半圆形树叶层。有一个常量𝜎𝑚𝑖𝑛 ,决定了树木能存活的最小叶面曝光面积
10
4. 随机树木模型 根据这4 条植物学基本原理,我们得到: 1、当k≥1,树冠半径𝑅𝑘=𝑙𝑘
4. 随机树木模型 根据这4 条植物学基本原理,我们得到: 1、当k≥1,树冠半径𝑅𝑘=𝑙𝑘 2、半圆形树冠面积 𝑆𝑘=2𝜋𝑅 𝑘 2 =2𝜋 𝑙 2 𝑘 2 3、下一时期新生长出的枝条数目: 其中 4、初期 后期 5、当k ≥t, 6、分叉概率
11
4. 随机树木模型 L-System 5: w : FA(1)
4. 随机树木模型 L-System 5: w : FA(1) p1 : A(k) ->/(∅)[+(𝛼)FA(k + 1)] - (𝛽)FA(k + 1) : min{1, 2𝑘+1 𝑘 2 } p2 : A(k) -> /(∅)B - (𝛽)FA(k + 1) : max{0, 1− 2𝑘+1 𝑘 2 } ∅=90°,𝛼=32°,𝛽=20° 假设k=3为临界点
12
5. 模拟裁剪 L-System 6: w : FA(1)?P(x, y, z)
5. 模拟裁剪 L-System 6: w : FA(1)?P(x, y, z) p1 : A(k) > ?P(x, y, z) : !prune(x, y, z) -> /(∅)[+(𝛼)FA(k + 1)?P(x, y, z)] - (𝛽)FA(k + 1) : min={1, 2𝑘+1 𝑘 2 } p2 : A(k) > ?P(x, y, z) : !prune(x, y, z) -> /(∅)B(k + 1, k +1) - (𝛽)FA(k + 1) : max{0, 𝑘+1 𝑘 2 } p3 : A(k) > ?P(x, y, z) : prune(x, y, z) -> T% p4 : F > T -> S p5 : F > S -> SF p6 : S -> 𝜖 p7 : B(m, n) > S -> [+(𝛼)FA(am + bn + c)?P(x, y, z)] p8 : B(m, n) > F -> B(m+ 1, n) a = 0, b = 1, c = -5, ∅=90°,𝛼=32°,𝛽=20°
13
5. 模拟裁剪 a, b, c取值对模型结果的影响: a = 1, b = 0, c = a = 0, b = 1, c = a = 0, b = 0, c = 1
Similar presentations