26

私は Ogre で作業していますが、これは一般的な四元数の問題です。

最初に回転クォータニオン Q1 を適用するオブジェクトがあります。後で、別のクォータニオン Q2 で最初にオブジェクトを回転させたかのようにしたいと思います。

既に Q1 によって回転されているオブジェクトを取得し、Q2 を初期/デフォルトの向きに適用するだけであるかのように整列させるクォータニオンを計算するにはどうすればよいですか? (s)lerping を見ていましたが、これが回転ではなく方向に対してのみ有効かどうかはわかりませんか?

4

2 に答える 2

36

Q1とQ2の逆数が必要なようです。Q1の逆で変換すると、オブジェクトが元のフレーム(あなたが言うように、最初の方向)に回転して戻り、Q2で変換すると、オブジェクトが新しい方向に回転します。

クォータニオンの標準的な定義では、右から左への乗算順序で変換が適用されるため、これをQ = Q2 * Q1^{-1}として計算する必要があることに注意してください。

于 2009-11-18T15:04:59.390 に答える
24

このように考えてみてください

QInitial * QTransition = QFinal

両辺に QInitial^{-1} (^{-1} は四元数共役) を掛けて QTransition を解く

QTransition = QFinal * QInitial^{-1}

それはとても簡単です。

  • @Dan Park へのメモ - 私の数学に同意しない場合は、私の回答への回答を投稿してください。数学を変更しないでください。私の知る限り、それは正しいです。
于 2010-12-07T01:53:08.873 に答える