
Pythonで放物線のアニメーション
放物運動のPythonコード
放物運動をシミュレーションするコードを作ってもらいました。
import math
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
# 放物運動をシミュレートする関数
def 放物運動(v, theta, g):
theta_rad = math.radians(theta)
vx = v * math.cos(theta_rad)
vy = v * math.sin(theta_rad)
t_flight = (2 * vy) / g
dt = 0.01
t = np.arange(0, t_flight, dt)
x = vx * t
y = vy * t - 0.5 * g * t ** 2
return x, y
# 入力パラメータ
v0 = 20 # 初速度(m/s)
角度 = 45 # 射角(度)
g = 9.81 # 重力加速度(m/s^2)
# 放物運動をシミュレート
x, y = 放物運動(v0, 角度, g)
# グラフと軸を作成
fig, ax = plt.subplots()
ax.set_xlim(0, max(x) + 5)
ax.set_ylim(0, max(y) + 5)
line, = ax.plot([], [], lw=2)
# アニメーション関数
def アニメーション(i):
line.set_data(x[:i], y[:i])
return line,
# アニメーションを作成
ani = animation.FuncAnimation(fig, アニメーション, frames=len(x), interval=10, blit=True)
# アニメーションをHTML5ビデオとして保存して表示
HTML(ani.to_html5_video())
入力パラメータのところの数値を変えれば、他のシミュレーションができます。
放物運動のアニメーション
実際に作成されるアニメーションです!