投射したリングをポールに通す「輪投げ」をテーマにプログラムを作成しました。
「物理」で習う「斜方投射運動」を参考にし、ポールまでの距離と投射角度の情報から、「初速度」を算出し投射します。
重力加速度(9.81 m/s^2) = G / 滞空時間s = t / 投射角度 = θ
初速ベクトル = v / y成分 = v * sinθ / x成分 = v * cosθ
・滞空時間 t = y成分 / G
・ Y変位 = (y成分 * t) - (1/2 * G * t^2) ※ ^2 は2乗
・ X変位 = x成分 * t
上記を元に、到達距離 = v * cosθ * (y成分 / G) * 2 つまり、
到達距離 = v * cosθ * (v * sinθ / G) * 2 が成り立ちます。
さらに上記から初速度 v を算出するには、到達距離を「d」とすると
v * cosθ * (v * sinθ / G) * 2 = d
↓
v * cosθ * (v * sinθ / G) = d / 2
↓
v * cosθ * v = (d / 2) * (G / sinθ)
↓
v * v = (d / 2) * (G / sinθ) * (1 / cosθ)
↓
【式】v = Sqrt((d * G) / (2 * sinθ * cosθ))
上記【式】で、リングまでの距離と投射角度の情報から初速度を算出しました。
◆ ソースコード
github.com/S-Yajima/Ring_Throw_Unity/blob/master/A…
◆ BGM
カナリアスキップ
written by まんぼう二等兵
dova-s.jp/bgm/play7330.html
#Unity #物理 #カナリアスキップ #数学
コメント