2012年7月31日火曜日

etc - L-System適当メモ



教科書:


The Algorithmic Beauty of Plants
http://algorithmicbotany.org/papers/#abop

上記書籍の簡易解説pdf.
http://natcomp.liacs.nl/CSA/slides/CSA7.pdf

以下は読みながら適当にメモったものであり、
内容の正当性については保証できないので、本気出す人は上記書籍を参照してください。



---------------------------------------------------------


DOL-System(deterministic and context-free,L-System)

→コンテキストは自由に与えることが出来、コンテキストごとの結果は一意に定まる(ランダムに結果が変動したりしない)ようなL-System

---------------------------------------------------------

方法1:上から書いていく方法

ω(axiom)=初期状態(n=0)
n=何回実行したか。ωにp1~pNを全てm回適用したらmである。
p1=rule1
p2=rule2
p3=rule3



pN=ruleN

方法2:turtleインタプリタ。亀が2次元で動く
方法1の定義に加え、亀用に以下の定義を導入

δ(angle)=回る角度
F=前に距離dだけ一歩進む、移動中描画する
f=前に距離dだけ一歩進む、移動中描画しない
+=左にδ回転
-=右にδ回転


---------------------------------------------------------

DOL-Systemの合成

高い木を作るには、ランダムな変更が必要であるが、
プログラムでは配列や構造体操作でL-Systemが表現される
というインタフェース上の問題がある。

1990年以前高い木をモデリングするには非常に制限された方法であるが、
turtleインタプリタに2つの操作モードを導入する方法が考案された。
edge rewritingnode rewritingである。(グラフ理論に由来する用語らしい)



Edge RewritingとNode Rewritingについては、
http://www.selcukergen.net/ncca_lsystems_research/lsystems.html
の図が分かりやすい






(読み終わるまで続く)