2012-02-25 16 views
0

3D速度ベクトルを見つけるにはどうすればよいですか?私は発射位置、終了位置、発射速度を持っています。3D速度ベクトルを見つける

また、ターゲットが動いている場合、どのように速度ベクトルを見つけることができますか?

ご迷惑をおかけして申し訳ありません。

+4

オブジェクトが直線に沿って移動してから、方向ベクトル(終了位置から開始位置を引いたもの)を取得し、速度で正規化し、スケーリングします。 –

+1

2番目の部分を詳しく説明する必要があります。ターゲットとは何か、それについてどのような情報がありますか。 – Irfy

+0

ターゲットに位置、速度などのすべての情報があります – Djokovic

答えて

5

位置のコンポーネントはxy、およびzている場合は、あなたがミサイルの動きを分解することができます。

dx = endPosition.x - startPosition.x 
dy = endPosition.y - startPosition.y 
dz = endPosition.z - startPosition.z 

あなたは総移動を見つけることができます。そして、

d = sqrt(dx*dx + dy*dy + dz*dz) 

を速度ベクトルを計算することができます:

vx = dx/d * missileSpeed 
vy = dy/d * missileSpeed 
vz = dz/d * missileSpeed 
+0

ありがとう!動く標的はどうですか?私はターゲットの暫定的な場所を見つけ、ミサイルがターゲットに当たるかどうかを判断する必要があります。ターゲットはそれ自身の速度で移動し、発射物は一定の速度で発射される。 – Djokovic

+0

同じテクニックを使用します:x、y、z方向のターゲットの動きを計算します。 'x0 + t * vx'のように時刻tの軸に沿ってターゲットの位置を計算することができます。ここで' x0'は軸上の開始位置であり、 'vx'は軸に沿った速度です。 x軸、y軸、z軸に沿ってその位置を計算する。ミサイルについても同じことをする。両方のオブジェクトが同時に同じ場所にある場合、ミサイルはターゲットに命中します。 –