28 lines
622 B
Python
28 lines
622 B
Python
import numpy as np
|
|
import matplotlib.pyplot as plt
|
|
|
|
# 參數設定
|
|
a = 1 # 初始半徑
|
|
b = np.log((1 + np.sqrt(5)) / 2) / (np.pi / 2) # 黃金比例相關的 b 值
|
|
|
|
# 角度範圍 (0 到 4π 讓螺旋轉兩圈)
|
|
theta = np.linspace(0, 4 * np.pi, 1000)
|
|
r = a * np.exp(b * theta)
|
|
|
|
# 轉換為笛卡爾座標
|
|
x = r * np.cos(theta)
|
|
y = r * np.sin(theta)
|
|
|
|
# 繪製黃金螺旋
|
|
plt.figure(figsize=(6, 6))
|
|
plt.plot(x, y, color='gold', linewidth=2)
|
|
|
|
# 設定視圖範圍與標籤
|
|
plt.axis('equal') # 保持比例
|
|
plt.title("黃金螺旋 (Golden Spiral)", fontsize=14)
|
|
plt.xlabel("X")
|
|
plt.ylabel("Y")
|
|
|
|
# 顯示圖像
|
|
plt.show()
|