Koch曲線の描き方とL-system

フラクタル図形の代表例であるKoch 曲線の描き方を考えてみよう。最初に長さ1の水平な線分がある。 この水平線をコード化し、Fで表現する。これを初期条件として、変換規則:F→F-F++F-F を適用し、 次のレベルの図形を表す数字の列(String)を生成する。 ここで、+は時計回りに60度の回転を表し、-は反時計回りに60度の回転を表す。

この方法は、理論生物学者 Aristid Lindenmayer (1925-1989)が 1968 年に、 植物の成長を記述する方法として発明したものである。現在、この方法は L-systems(Lindenmayer systems) と呼ばれている。

The development of an organism may ... be considerd as the execution of a developmental program present in the fertilized egg. The cellularity of higher organisms and their common DNA components force us to consider developing organisms as dynamic collections of appropriately programed finite automata. A central task of developmental biology is to discover the underling algorithm from the course of development.

[A.Lindenmayer and G.Rozenberg : Automata, Languages, Development, North-Holland, 1975]

Java Developper's Kit の sample applet に CLSFractal があるが、これはL-systemである。 これを利用し、パラメータとして、初期条件と変換規則を与えるとさまざまなフラクタル図形が描ける。 以下にいくつか例示する。


Home Page