Microsoft DirectX 8.0 (Visual Basic) |
D3DXQuaternionMultiply( _ QOut As D3DQUATERNION, _ Q1 As D3DQUATERNION, _ Q2 As D3DQUATERNION)
失敗した場合はエラーが発生し、Err.Number に次のいずれかの値が設定される。
D3DERR_INVALIDCALL |
D3DERR_OUTOFVIDEOMEMORY |
エラー トラッピングの詳細については、Microsoft® Visual Basic® の「エラー処理」を参照すること。
結果は、回転 Q2 に続いて回転 Q1 を実行する処理を表している (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
クオータニオンの乗算は可換ではない。