loop-animation

葉序・螺旋Phyllotaxis

黄金角ずつ角度をずらして点を並べ、ひまわりの種のような螺旋模様が中心から湧き出して外へ流れ続けるループアニメーションです。

Canvas 2D で、図形を 1 つずつ計算して描いています。初期設定で再生しています。

ひまわりの種のように黄金角で並んだ点が、中心から湧き出して外へ流れ続ける

このシーンで作る

パラメータ、色、エフェクトを変えて、GIF・APNG・WebP・MP4・WebM で書き出せます。

どう計算しているか

  1. k 番目の点を、角度 k×「開度」、半径 √k ×「間隔」の位置に置きます。半径を √k に比例させると、点の密度が中心から外まで均一になります。
  2. 開度が黄金角(約 137.5°)のとき、点は重なりにくく、左右両方向の螺旋が同時に見える配置になります。少し変えるだけで模様が大きく変わります。
  3. 時間とともに全ての点の番号 k に少しずつ値を足していくことで、点が螺旋に沿って外側へ流れ、中心から新しい点が湧いて見えます。
  4. 中心付近と最後の点の近くでは大きさを 0 に近づけ、点が急に出たり消えたりしないようにしています。「大きさの変化」では、外ほど大きくする、一定にする、半径に沿った sin の波で変える、を選べます。
q = k + t·growth·P,  r = c·√q,  θ = q·137.5° + spin·2πt

ループがつながる理由

1ループで点の番号を「1ループで湧く数」×パレットの色数ぶんだけ進めます。番号が整数だけずれるので点の位置は元の点の位置とそろい、色も色数の倍数だけずれるので同じ色が同じ場所に来ます。「回転」は整数周なので向きも戻ります。

調整できるパラメータ

形

図形丸・四角・三角・六角形・ひし形・十字・星・リング・線・半円
点の数50 〜 3000(初期値 900)
間隔4 〜 40(初期値 15)
点の大きさ0.1 〜 1.5(初期値 0.55)
開度(度)120 〜 160(初期値 137.51)

動き

1ループで湧く数1 〜 8(初期値 1)
回転-3 〜 3(初期値 0)
大きさの変化外ほど大きい・一定・波打つ

同じ分類のシーン(放射・回転)