L-Systems 是鄙專業(yè)(生物系統(tǒng)工程)在生物系統(tǒng)模擬這門課程中需要學(xué)習(xí)的語言之一轩触。
非常有趣鸠匀。
開始之前蕉斜,先看看一個(gè)例子:
其代碼只有寥寥數(shù)行:
Iterations: 6
Angle: 25
Axiom: X
Rules: (X -> C0F-[C2[X]+C3X]+C1F[C3+FX]-X), (F -> FF)
正如 xqy 同學(xué)所說:形成一棵樹需要的信息很少。
沒錯(cuò)缀棍,自相似讓分形美宅此,而迭代另分形神秘。
所以讓我們看看這棵樹是怎么長成的:
再來看一眼簡化的代碼(黑白的版本):
start : X
rules : (X → F-[[X]+X]+F[+FX]-X),(F → FF)
F
:向前畫一個(gè)單位
-
:順時(shí)針旋轉(zhuǎn)25°
+
:逆時(shí)針旋轉(zhuǎn)25°
[
:暫存當(dāng)前光標(biāo)所在位置
]
:取出上一次存入的光標(biāo)位置
其工作原理爬范,一開始繪制X父腕,然后每個(gè)round按照rules來迭代。
-
第零代
X(無輸出)
-
第一代(X被替換)
F-[[X]+X]+F[+FX]-X(注:講的時(shí)候仔細(xì)說說這里)
- 第二代(X被替換青瀑,F(xiàn)被替換)
- 第三代
- 第四代
- 第五代
- 第六代
相關(guān)書目
時(shí)間所限璧亮,就不具體討論了,我只是來拋個(gè)磚斥难。大家可以自行 Google 分形和 L-Systems 來獲取更多的信息枝嘶。
然后推薦一本書(我的老師課上推薦的):《The Algorithmic Beauty of Plants》(中譯:植物的算法美)。
有提供免費(fèi)的PDF電子版哑诊,維基百科上有相關(guān)的鏈接群扶。
Links
-
L-Systems Turtle Graphics Renderer
一個(gè)簡單的2D渲染器,本文的例子就來自于此頁面镀裤,其實(shí)L-Systems是支持3D的竞阐。