フィロタキシス
なにか
松ぼっくりの鱗片、ヒマワリの種、パイナップルの目。螺旋を数えると8本と13本、13本と21本——必ずフィボナッチ数のペアになる。理由は、植物が新しい葉や種を出すとき、直前のものから黄金角137.507…°(円を黄金比で分けた角度)だけ回った位置に置くから。この角度は「もっとも割り切れない角度」で、何番目まで増えても点どうしが重ならず、隙間なく詰まる。137.0°や138.5°のようにわずかにずれるだけで、放射状の筋や渦に崩れてしまう。
★自分で動かす
下の絵はこの場で計算している(あらかじめ描いた絵の切り替えではない)。上の図を作っているのと同じ 1 本のコード gallery/assets/phyllotaxis-live.js を、記事の中で呼んでいる。発散角をゆっくり動かすと、螺旋の本数がフィボナッチ数の階段を上り下りし、少し外すと絵が崩れる。
- 螺旋の本数
- —
- 実測(記録更新列)
- —
- 理論(連分数の分母)
- —
- 詰まり具合
- —
スライダーで決めた発散角で並べた種と、そこに見える螺旋の図
「片方だけ」で見ると、その族の螺旋が何本あるか実際に数えられる(茜の線を1本ずつ追えばいい)。螺旋の本数は数えているのではなく測っている——点 i と点 i+k の距離を k=1 から順に見て、これまでで最短を更新した k を拾う(=記録更新列)。その並びが、発散角の一周に対する割合を連分数に開いた近似分母と一致する。黄金角は部分商がぜんぶ 1 なので中間分数が挟まらず、記録がフィボナッチ数だけになる。黄金角の生まれ方では、この角度を入力ではなく出力として出している。
どう作ったか
Vogelのモデル(1979): n番目の点を半径c√n・角度n×黄金角に置く。螺旋の本数は数えずに測る——点 i と点 i+k の距離を k=1 から見て、これまでで最短を更新した k を拾う(記録更新列)。その並びが、発散角の一周に対する割合を連分数に開いた近似分母(と中間分数)と一致する=実測と理論の独立2経路。黄金角は部分商がぜんぶ 1 で中間分数が挟まらないので、記録がフィボナッチ数だけになる。
機械検査は8件。①黄金角 = 2π(1−1/φ) ②詰まり具合(最近接距離の最小値)が黄金角のとき137.0°・138.5°より大きい ③螺旋の本数が独立2経路で一致(5つの発散角で 実測 ⊂ 理論・黄金角は 1,2,3,5,8,13,21,34,55) ④ルーカス角99.502°ではルーカス数列(1,3,4,7,11,18,29,47)=フィボナッチは黄金角に固有という対照 ⑤ドラッグ用の格子法が総当たりと厳密に一致(32通り・差ちょうど0。⚠️セルの大きさを面積から決めていたとき、点が一直線に並ぶ180°で高さが0に潰れてセル数が発散し、実際に固まった。長辺から決める形に直してある) ⑥記事のドラッグ版を偽DOMの上で実際に走らせる10項目 ⑦出荷SVGとドラッグ版が同じ1本のコードを共有していること ⑧出荷SVG。ドラッグ版の検査の実体は tools/phyllotaxis-live-test.js。
出典
- 数理
- H. Vogel, "A better way to construct the sunflower head" (1979, Mathematical Biosciences)
- 生成
- generators/phyllotaxis.js(850点・黄金角)葉序の数理(Vogel の配置・詰まり具合・螺旋の本数の実測と連分数)は gallery/assets/phyllotaxis-live.js に置き、出荷SVGの生成器と記事のドラッグ版が同じ1本を共有している
- 関連
- 黄金角の生まれ方——ここでは黄金角を手で入れているが、あちらでは出力として出てくる(貴金属角の一家・ルーカス角が稀な理由)