0

ここに私のシナリオがあります: 私は宇宙船ゲームを持っています。各宇宙船は別の船をターゲットにして魚雷を発射することができ、魚雷は移動するための方向ベクトルを必要とし、ベクトルは距離に依存しない必要があります。

私は次のD3DXVECTOR3ように構築されたを返すメソッドを作成しようとしています:

D3DXVECTOR3 TargetVector(D3DXVECTOR3 *target, D3DXVECTOR3 *firer)

誰もこの問題で経験を持っていますか? 私がこれまでに見つけたのは、数式ではなく画像のレンダリングに基づいているため、適切で理解しやすい D3D 数学のチュートリアルを誰かに教えてもらえれば幸いです。

ありがとう!

-ライアン

4

1 に答える 1

2

から始まる方向ベクトルが必要な場合は、 ieから減算firerするだけです。targetfirertarget

direction = target - firer;

D3DX lib にはD3DXVec3Subtractがあります。

長さ 1 のベクトルである単位法線が必要な場合は、D3DXVec3Normalizeで正規化します。

したがって、次のようになります。

D3DXVECTOR3 TargetVector(D3DXVECTOR3 *target, D3DXVECTOR3 *firer)
{
    D3DXVECTOR3 direction;
    D3DXVec3Subtract(&direction, target, firer);

    D3DXVec3Normalize(&direction, &direction);
    return direction;
}
于 2013-04-11T15:47:04.917 に答える