자연 · 황금각

해바라기는 왜 씨앗마다 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개, 규칙 전체가 한 줄, 씨앗 번호에 따라 색칠.

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)로 바꾸고 다시 실행해 보세요. 곧은 바큇살 다섯 개가 나와요.

이 스크립트를 한 줄씩, 연습 문제와 퀴즈로 배우기 → · Google Colab에서 실행 (영어) →

선생님을 위해: 45분 수업 지도안과 3단계 활동지 →

Shorts

출처