対数螺旋 — 貝が家を建て増す方法
なにか
貝は家を建て替えられない。体が大きくなっても引っ越せないから、入口に建て増しを続けるしかない。そのとき「今の家と同じ形のまま大きくしたい」という一点だけを要求すると、答えは対数螺旋 r=ae^{bθ} ただひとつに決まる。この曲線の本質は「回して見ても、拡大して見ても、同じ曲線」——回転と拡大が同じ操作になる、連続の自己相似だ。オウムガイの殻、台風の雲、銀河の腕、ロマネスコの突起の並びがみな同じ曲線なのは、どれも「今ある形を保ったままスケールだけ変わる成長」だから。
もうひとつの顔が等角性。曲線上のどこでも、中心から引いた線と進行方向のなす角が同じ(この実装では80.1°)。ハヤブサが獲物めがけて螺旋を描いて降りるのは、目を動かさずに獲物を視界の同じ角度に保って飛ぶと、軌道が自動的に対数螺旋になるからだ。
★自分で動かす
下の絵はこの場で計算している(あらかじめ描いた絵の切り替えではない)。上の図を作っているのと同じ 1 本のコード gallery/assets/logspiral-live.js を、記事の中で呼んでいる。回す角を動かすと、茜色の弧がいつも元の螺旋の上に乗る——「回転=拡大」はこれを見ることそのもの。
どう作ったか
成長率はオウムガイの実測に合わせて1周3倍(b=ln3/2π)。機械検査は7件: 回転=拡大の厳密一致(誤差10⁻¹⁵)・等角性が全点で一定・曲率半径が動径に比例(比例定数√(1+b²))・1周ちょうど3倍・記事のドラッグ版を偽DOMの上で実際に走らせる7項目(★回す角を41通り動かしても回転=拡大が成り立つ/倍率を1へ近づけると等角が90°=円へ)・出荷SVGとドラッグ版が同じ1本のコードを共有していること・SVG実物。ドラッグ版の検査の実体は tools/logspiral-live-test.js。隔壁と住房の描き分けは模式で、殻の螺旋そのものが数理の主役。
出典
- 数理
- 対数螺旋(equiangular spiral): J. Bernoulli が "eadem mutata resurgo"(形を変えて甦る)と墓碑に刻んだ古典。貝殻の成長モデルは D'Arcy Thompson, "On Growth and Form" (1917) ほか
- 生成
- generators/logspiral.js(1周3倍・3.75周・隔壁は模式)対数螺旋の数理は gallery/assets/logspiral-live.js に置き、出荷SVGの生成器と記事のドラッグ版が同じ1本を共有している