# makizushi-02.py 2023.03.22 by Kero
# 最終目標は「巻きずしを作る3Dアニメ」です。
# 2. 2次元アニメ「代数らせん」作り (makizushi-02.py)
# 前回のソースコードの解説(コメント文)を消し、今回の解説をします。
import sys
import numpy as np
import matplotlib.pyplot as plt
pi = np.pi
# らせんの計算
maki = 3 # 巻数を1から3にしました。
r0 = 1
a = 2
kaku0 = 2 * pi * r0 / a
ara = 12 # 回転角の粗さ。1周を6等分から12等分にしました。
pon = maki * ara + 1
kaku = np.linspace(0, 2 * pi * maki, pon)
kakut = kaku + kaku0
r = a * kakut / (2 * pi)
x = r * np.cos(kakut)
y = r * np.sin(kakut)
# グラフ化
fig, ax = plt.subplots()
ax.set_aspect('equal')
ax.grid()
ax.set_xlim(-10,10) # x軸を固定しておかないとコマごとに変化します。
ax.set_ylim(-10,10) # y軸も同上。
ax.scatter(0,0,c='r')
for i in range(1, pon + 1): # 線を描く範囲を一つずつponまで増やす。
ax.plot(x[:i], y[:i], c='b') # 配列の0番目からi番目までを描く。
plt.pause(0.1) # 0.1秒停止。
plt.show()
plt.close()
sys.exit()