放物線で目標に当てる角度を求める

exam_02_20150424

砲弾を目標に命中させるための角度を計算してみたくなりました。

初速をV、時間を t として目標の座標(x, y)を通過する式を考えます。x, y それぞれのt秒後の座標を表した式はこうなります。縦方向は重力の公式を使っています。

x = Vcosθt

y = Vsinθt – 1/2gt^2

ballistic_graph_20160131

これらの式を使って軌道の式を求めていきます。

balistic_calc_01_20160131

軌道の式が出来たので、これをtanθの二次関数の式に変形していきます。二次関数の式ができれば解の公式で答えを計算することが出来ますね。

balistic_calc_02_20160201

参考にコンピュータで計算したコードも載せておきます。

ballistic_calc_20160131

初速800m/sの砲弾で距離4000m、高度5000mの目標を撃つ場合、角度を53.16906°で撃てばその放物線は目標を通過します。

 

大きく打ち上げて当てる

プログラムのコード内ではMath.Min()によって鋭角を選んでいますが、Math.Max()に変えて鈍角を選べば大きく打ち上げて当てる軌道になります。

ballistic_graph_course_20150421

グラフにするとこのような感じになります。直撃で撃つと8.34秒後に目標に到達します。フライで撃つと高度32619mに到達した後、落下して目標に到達します。到達までにかかる時間は156.67秒、長いですね。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中