分形與L-Systems

L-Systems 是鄙專業(yè)(生物系統(tǒng)工程)在生物系統(tǒng)模擬這門課程中需要學(xué)習(xí)的語言之一。
非常有趣。

開始之前,先看看一個例子:

final.png

其代碼只有寥寥數(shù)行:

Iterations: 6
Angle: 25
Axiom: X
Rules: (X -> C0F-[C2[X]+C3X]+C1F[C3+FX]-X), (F -> FF)

正如 xqy 同學(xué)所說:形成一棵樹需要的信息很少。
沒錯,自相似讓分形美,而迭代另分形神秘。

所以讓我們看看這棵樹是怎么長成的:

再來看一眼簡化的代碼(黑白的版本):

start  : X
rules  : (X → F-[[X]+X]+F[+FX]-X),(F → FF)

F:向前畫一個單位

-:順時針旋轉(zhuǎn)25°

+:逆時針旋轉(zhuǎn)25°

[:暫存當前光標所在位置

]:取出上一次存入的光標位置

其工作原理,一開始繪制X,然后每個round按照rules來迭代。

  • 第零代

    X(無輸出)

  • 第一代(X被替換)

    F-[[X]+X]+F[+FX]-X(注:講的時候仔細說說這里)

1.png
1-with-mark.png
  • 第二代(X被替換,F(xiàn)被替換)
2.png
  • 第三代
3.png
  • 第四代
4.png
  • 第五代
5.png
  • 第六代
6.png

相關(guān)書目

時間所限,就不具體討論了,我只是來拋個磚。大家可以自行 Google 分形和 L-Systems 來獲取更多的信息。

然后推薦一本書(我的老師課上推薦的):《The Algorithmic Beauty of Plants》(中譯:植物的算法美)。
有提供免費的PDF電子版,維基百科上有相關(guān)的鏈接。

Links

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 14,259評論 0 38
  • 導(dǎo)語: 如果你已經(jīng)加入了iOS攻城獅隊伍,那么我們由衷地祝賀您正式成為一名終身學(xué)習(xí)的程序猿;有人覺得這句話...
    超人猿閱讀 2,561評論 3 19
  • 曾經(jīng)在思科的工廠測試系統(tǒng)`KlemTest` (`SUSE`命令行模式)中使用`VI`/`VIM`超過2年半,現(xiàn)在...
    戈多在地獄閱讀 1,987評論 1 13
  • 曾經(jīng)使用了幾年多的Vim,手冊也翻過一遍。雖然現(xiàn)在不怎么用vim了,曾經(jīng)的筆記還是貼出來,與喜歡vim的朋友分享。...
    Sylar丶閱讀 976評論 0 0
  • 平常上班時,常常羨慕那些有錢又有閑的人,不用操心勞碌太多,可以做自己想做的事。其實我們很多時候只是放任自己去向往去...
    一凡李子閱讀 1,084評論 0 4

友情鏈接更多精彩內(nèi)容