自然 · 黄金角

ひまわりはなぜ種を137.5°ずつ回すのか

ルール

新しい種をひとつ置くたびに137.5°回すと、ひまわりが現れます。角度を1度変えるだけで、形は崩れてしまいます。

クリックするとYouTubeから再生されます。

Why Does a Sunflower Have 21 and 34 Spirals?

新しい種はどれも、ひとつ前の種から137.5°回り、少しだけ外側に置かれます。この角度は決して自分自身と重ならないので、種が列をつくることはありません。すき間も混み合いもなく、花を均等に埋めていきます。

壁紙にする(4K、無料) →
ライブデモ · ブラウザで動きます

試してみよう:ルールを変える

137.5°

137.5°は、決して自分自身と重なりません。同じ筋に並ぶ種はふたつとなく、種は円盤を均等に埋めます。これがひまわりです。

なぜそうなるのか

新しい種はどれも、ひとつ前の種から137.5°回り、少しだけ外側に置かれます。この角度は決して自分自身と重ならないので、種が列をつくることはありません。すき間も混み合いもなく、花を均等に埋めていきます。

θₙ = n × 137.508°rₙ = c · √n137.508° = 360° ÷ φ²

自分で作る

Python 3 · numpy · matplotlib

種1,000個。ルール全体が1行で、色は種の番号で決まります。

golden-angle.py
"""Golden angle: seed n at the angle n x 137.5 degrees and the distance sqrt(n) (Vogel, 1979).
Run: python golden-angle.py   (needs: pip install numpy matplotlib)
"""
import numpy as np
import matplotlib.pyplot as plt

plt.style.use("dark_background")

n = np.arange(1, 1001)  # seed numbers
golden = np.pi * (3 - np.sqrt(5))  # 137.5 degrees in radians: 360 / phi**2
theta, r = n * golden, np.sqrt(n)  # the whole rule

x, y = r * np.cos(theta), r * np.sin(theta)
plt.figure(figsize=(6, 6))
plt.scatter(x, y, s=8, c=n, cmap="viridis")
plt.axis("equal")
plt.axis("off")
plt.show()

# Try: golden = np.radians(144) -> five straight spokes (144 degrees is 2/5 of a turn)

試してみよう: golden を np.radians(144) に変えて、もう一度実行してみましょう。まっすぐな筋が5本できます。

このスクリプトを1行ずつ、練習問題とクイズで学ぶ → · Google Colabで実行(英語) →

先生向け: 45分の授業カードと3段階のワークシート →

Shorts

出典