6

だから私は四元数に非常に慣れていませんが、四元数を操作する方法の基本を理解しています。私が現在やろうとしているのは、既知の四元数を空間内の 2 つの絶対点と比較することです。私ができることは、ポイントを2番目のクォータニオンに変換するだけで、2つを簡単に比較できることを願っています。

これまでに行ったことは、2 つの点を単位ベクトルに変換することです。そこから、ゼロのスカラーを使用して、ijk をクォータニオンの虚数部分に直接プラグインできることを望んでいました。そこから、1 つの四元数を他の共役で乗算して、3 番目の四元数を得ることができます。この 3 番目の四元数を軸角度に変換すると、元の 2 つの四元数の差の度合いがわかります。

この思考プロセスは正しいですか?したがって、[ 0 ijk ] である必要があります。後で四元数を正規化する必要があるかもしれませんが、それについてはわかりません。

ベクトルからクォータニオンへの直接マッピングではないというのが悪い気がします。単位ベクトルを軸角度に変換しようとしましたが、入力としてどの角度を指定すればよいかわからないため、これが機能するかどうかはわかりません。

4

1 に答える 1

1

表記

クォータニオンは、基数 {1, i, j, k} を持つ 4 つの空間で定義されます。ハミルトンは、ダブリンのブロアム橋の石に基本的な関係を刻んだことで有名です。

i 2 = j 2 = k 2 = ijk = -1.

同等の四元数のパラメーター化は多数ありますが、ここでは {scalar, vector } 形式を使用します。

1.) A = {a0, a } および B = {b0, b }、ここで、A と B は四元数、a0 と b0 はスカラー、abは 3 つのベクトルです。

2.) X = { 0, x } はベクトル四元数です。

3.) (非可換)四元数積は、上記の i、j、および k のプロパティから直接派生します。A⊗B = {a0 b0 - a . b , a0 b + b0 a + a x b }

4.)四元数共役は A * = {a0, - a }

5.)四元数積の共役は、逆順の共役の積です。
(A⊗B) * = B * ⊗A *

6.)ベクトル四元数の共役はその負です。X * = {0, - x } = -X

7.)クォータニオン ノルムは |A| です。= √(A⊗A * ) = √( a0² + a . a )

8.)単位クォータニオンは、ノルムが 1 のクォータニオンです。

9.) 単位 3 ベクトルx = {x 1 , x 2 , x 3 } with x . x = 1 は、単位ベクトルの四元数X = { 0, x }, |X|として表現できます。= 1。

10.)単位ベクトル軸nを中心とした角度 θ による四元数ベクトル X の球面回転は Q⊗X⊗Q *です。ここで、Q は四元数 {cos(θ/2), sin(θ/2) n }です。 . |Q| に注意してください。= 1。

四元数ベクトル積の形式に注意してください。ベクトル四元数 X 1 = { 0, x 1 ) および X 2 = { 0, x 2 } が与えられると、四元数積は X 2 ⊗X 1 * = { x 1 . × 2× 1 ×× 2 }。クォータニオンは、100 年以上前に分離された、スカラー部分としての内積とベクトル部分としての外積を再結合します。これらの積はどちらも可逆ではありませんが、四元数は次のようになります。

反転

ベクトル X 1を回転させてベクトル X 2に揃えるための球面変換四元数 Q 12を求めます。

上から

X 2 = Q 12 ⊗X 1 ⊗Q 12 *

両辺に X 1 *を掛けると、

X 2 ⊗X 1 * = Q 12 ⊗X 1 ⊗(Q 12 * ⊗X 1 * )

回転軸nは外積x 1 × x 2から導出されるので、 nであることを思い出してください。x 1 = 0. および Q * ⊗X * = (X⊗Q) * = X * ⊗Q、残す

X 2 ⊗X 1 * = Q 12 ⊗X 1 ⊗X 1 * ⊗Q 12 = Q 12 ⊗Q 12

したがって、四元数変換は次のように直接解くことができます。

Q 12 = √(X 2 ⊗X 1 * )

四元数の平方根はあなた次第です。それを行う方法はたくさんありますが、速度と安定性を考慮して、最善の方法はアプリケーションによって異なります。

――
フレッド・クリンガー

于 2014-05-01T19:10:37.187 に答える