成果物
有名なフラクタルのアルゴリズムのコードを見てみたのですが、予想外のコードだったので、どのように描いているのかを探ってみました。すると、根元から広がるように書いているのではなく、根元から葉一つ分ずつ先端に向かって書いていることが分かりました。
w | a | b | c | d | e | f | p | Portion generated |
---|---|---|---|---|---|---|---|---|
ƒ1 | 0 | 0 | 0 | 0.16 | 0 | 0 | 0.01 | Stem |
ƒ2 | 0.85 | 0.04 | −0.04 | 0.85 | 0 | 1.60 | 0.85 | Successively smaller leaflets |
ƒ3 | 0.20 | −0.26 | 0.23 | 0.22 | 0 | 1.60 | 0.07 | Largest left-hand leaflet |
ƒ4 | −0.15 | 0.28 | 0.26 | 0.24 | 0 | 0.44 | 0.07 | Largest right-hand leaflet |
英語版のBarnsly fernにこのような図がありますが、
Successively smaller leafletsの時に先端に向かって進み、
Stemの時に茎に移動し、
Largest left-hand leafletの時に一番大きい左の葉に移動し、
Largest right-hand leafletの時に一番大きい右の葉に移動しているようです。
これを、ランダムで繰り返していくことによってシダの図が書けるようです。面白い…
また、このサイトによると、Wikipediaのサイトにあった行列式は、アフィン変換で、進行方向を回転させる働きがあるようです。
コード
コードについての解説はこちらをご覧ください。
今回作った、現在書いている場所が分かるようになっているコードはこちらです。PGraphicsを使っているのでコードは、少々難しいですが、ぜひご覧ください。