2009-11-18 9 views
20

私はオーガーで働いていますが、一般的な四元数問題です。2つの四元数の「差」

私は最初に回転四元数Q1を適用するオブジェクトを持っています。後で、最初に別のクォータニオンQ2でオブジェクトを回転したかのようにしたいと思います。

Q2を初期/デフォルトの向きに適用した場合のように、Q1によって回転されたオブジェクトを受け取る四元数をどのように計算すればよいですか?私はlerpingを見ていましたが、オリエンテーションではなく、ローテーションで有効なのかどうかわかりません。

+3

いくつかの回答を正しいとマークするのはどうですか? また、数学のオーバーフローを見てください... (クォータリオンズは私を完全に怒らせてしまいますし、回答もできません) –

答えて

29

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

クォータニオンの標準定義では、右から左への乗算の順番で変換が適用されるので、Q = Q2 * Q1^{ - 1}として計算することになります。その

21

思うこのようQInitial ^によって両側を掛けてQTransitionについて解く

QInitial * QTransition = QFinal 

{ - 1}(^ { - 1}である四元複合体)

QTransition = QFinal * QInitial^{-1} 

それはちょうどですそれは簡単です。

  • あなたが私の数学に同意しない場合は、私の答えに回答を投稿してください、数学を変更しないでください。私が知る限り、それは正しいです。
+0

これは古いトピックを復活させていますが、なぜこれが正しいのですか?私はそれがコードであることを確認することができますが、行列の回転は私の周りの逆の動作をします。例えば。私がMInitiaを削除したいのであれば、MInitial^-1 * MInitial = Midentityから、左からMInitial^-1で両辺を乗算します。 –

+1

クォータニオンの「乗算」は、行列の乗算と逆のものではありません。私はウェブ上の確かな説明を見つけることができませんが、私はそれがカピパーズの "クォータニオンとローテーションシーケンス"にあることを知っています。 (http://www.amazon.com/Quaternions-Rotation-Sequences-Applications-Aerospace/dp/0691102988) - 私はあなたがそれを自分自身に証明するためにその本を買うべきだと言っているわけではない)、それはMatrixとQuaternionの操作命令の違いについて学んでいるところです。 – fbl

+0

応答いただきありがとうございます。もし私が何度か立ち往生すれば私はこの本を買うつもりですが、今のところ私はうまくいきます。 :) –