FC2ブログ

水雲風

とりあえず人生を記録と妄想の吐き出しの地

偏差射撃計算式メモ(2010/02/28)

最近robocodeを始めて、偏差射撃できないかなと思って実装してみました。
簡単な前提条件で計算してみたものの、2次方程式の解とか忘れてて苦労しましたorz
大学で散々やったはずなのに、、、もうsin、cos、tanって何?状態だしorz

なので、2次元空間での偏差射撃についての計算式をメモしておきます。
弾道ミサイル迎撃とかすんごい難しい計算してるんだろうなあ、と実感しました。

■前提条件

以下を前提条件としています。

・相手は等速直線運動をする(加減速をしない)。
・弾は等速直線運動をする(加減速をしない)。
・弾は打ち出すときの自分の速度に影響を受けない。
・弾は即座に任意角度で発射可能
・以下の情報が分かっているとする。

ownX : 自分の位置(x座標)
ownY : 自分の位置(y座標)

shootV : 弾の速度

targetX : 相手の位置(x座標)
targetY : 相手の位置(y座標)

targetVX : 相手の速度(x座標)
targetVY : 相手の速度(y座標)

■計算式

以下の連立方程式からshootVX(弾速のx座標成分)、shootVY(弾速のy座標成分)を計算することによって
弾をどの角度で打ち出せばいいかを求めることができます。
※ tは時間

1. ownX + shootVX * t = targetX * targetVX * t
2. ownY + shootVY * t = targetY * targetVY * t
3. shootV * shootV = shootVX * shootVX + shootVY * shootVY

■2次方程式の解

2次方程式の解は、
 a * x * x + b * x + c * x = 0
の場合(a、b、cは定数)、
 x = (-b ± sqrt(b * b - 4 * a * c)) / 2 * a
となります。

■その他

相手の移動方向と速度(弾より速い)によっては、弾が必ずあたらないので解なしになります。
間抜けにもJavaで実装して適当な値を計算してみたら答えが出なかったところで気付きました。

スポンサーサイト



  1. 2010/02/28(日) 21:35:58|
  2. 計算機
  3. | トラックバック:0
  4. | コメント:0
<<ケーキ作り | ホーム | 自主制作映画「Born of Hope」>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://mechagappa.blog14.fc2.com/tb.php/684-4b093c8d
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

おげれつ脱脂綿

カレンダー

09 | 2020/10 | 11
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

カテゴリー

月別アーカイブ(タブ)

最近の記事

最近のコメント

最近のトラックバック

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

RSSフィード

全ての記事を表示する

全ての記事を表示する