Microsoft DirectX 8.0 (C++) |
2 つのクオータニオンの積を求める。
D3DXQUATERNION* D3DXQuaternionMultiply( D3DXQUATERNION* pOut, CONST D3DXQUATERNION* pQ1, CONST D3DXQUATERNION* pQ2 );
2 つのクオータニオンの積である D3DXQUATERNION 構造体へのポインタ。
結果は、回転 Q1 の後に回転 Q2 を実行した結果を示している (Out = Q2 * Q1)。実際の出力は Q2*Q1 である (Q1*Q2 ではない)。このようにすると、回転行列を表すまた別の方法として正規化されたクオータニオンを見なすことができるので、D3DXQuaternionMultiply 関数は D3DXMatrixMultiply と同じセマンティクスを保持する。
D3DXQuaternionMultiply 関数と D3DXMatrixMultiply 関数の両方とも、同じ順序で変換が結合される。たとえば、mX と mY が qX と qY と同じ回転を表しているものと仮定すると、m と q は両方とも同じ回転を表すことになる。
D3DXMatrixMultiply(&m, &mX, &mY); D3DXQuaternionMultiply(&q, &qX, &qY);
クオータニオンの積算は、可換性がない。
この関数の戻り値は、pOut パラメータの戻り値と同じである。このように、D3DXQuaternionMultiply 関数を別の関数のパラメータとして使用できる。
ヘッダー : D3dx8math.h で宣言。
インポート ライブラリ : D3dx8.lib を使用。