4

まず、これは複製ではありません。一見関連する他のすべての質問は、2 つのベクトルの方向間の回転を表すクォータニオンを求めます。つまり、解はこれら 2 つのベクトルのノルムを考慮していません。

これが私が欲しいものです。非単位ベクトルa = (0, 0, 2)とがあるとしb = (3, 1, 2)ます。元のハミルトンの四元数の定義に従いq = a / bます (もちろん、ベクトルを分割することはできないため、この定義は象徴的です)。この概念については、ウィキペディアを参照してください。qそのことから、どういうわけかそのようなことを見つけることができると推測できます(おそらくそれは素朴です)q * b = a

言い換えれば、与えられaて、掛けると が得られるb四元数を見つけたいのです。の方向に単純に回転する単純な回転 (ユニタリ) クォータニオンには興味がないことに注意してください。実際、回転に加えて、 のノルムも のノルムにスケーリングする必要があります。qbababa

はい、私は2つの段階でそれを行うことができることを知っています:b標準のユニタリクォータニオンアプローチで回転し、回転bしたものをノルムに手動でスケーリングしaます。実際、これら 2 つの操作の計算効率の高い構成が必要であり、達成可能だと感じていますが、従来のユース ケースではないように思われるため、情報は広まっていません。

たぶん私は間違っています。あなたの経験を共有してください。ありがとうございました。

math.stackexchange.comではないのはなぜですか?

徹底的な数学的導出や説明には興味がないからです。私の関心事は、そのような四元数を構築するための計算効率の高いアルゴリズムです。それにもかかわらず、そのような詳細が回答に含まれる場合、私はそれと、おそらく将来同じ問題に出くわした他の人にも感謝します.

僅差の有権者の場合:

あるベクトルから別のベクトルへの回転を表すクォータニオンの検索も閉じてください。

さらに、質問に適切にタグを付けました。私の質問は、StackOverflow の一部であるこれらの人口の多いタグに属しています。その結果、クローズの理由は意味がありません。

4

1 に答える 1

1

ダニエル・フィッシャーのコメント回答は正しいです。このような四元数を構築する無限の方法があることがわかりました。この問題は、3 つの方程式と 4 つの変数をもつ線形システムに要約されます。制約が不十分です (結果の [w] 部分を破棄すると仮定すると)。

おそらく、フィッシャーの答えを明確にすることができます。

2 つのベクトルを四元数として扱い、乗算すると、[x,y,z] 部分で外積が得られ、[w] 部分で内積の否定が得られます。

    | 0| | 0| |-ax*bx-ay*by-az*bz|
a*b=|ax|*|bx|=|    ay*bz-az*by   |
    |ay| |by| |    az*bx-ax*bz   |
    |az| |bz| |    ax*by-ay*bx   |

完全四元数をベクトルで左乗算すると、同じ結果が得られますが、[w] の部分でベクトルがスケーリングされ、クロス積に追加されます。

    |qw| | 0| |-qx*bx-qy*by-qz*bz|
q*b=|qx|*|bx|=| qy*bz-qz*by+qw*bx|
    |qy| |by| | qz*bx-qx*bz+qw*by|
    |qz| |bz| | qx*by-qy*bx+qw*bz|

それを思い出します

a x b = |a||b|sin(Θ)n

ここで、 はおよびnに直交する単位ベクトルです。とab

a . b = |a||b|cos(Θ)

ベクトルの四元数共役は、その否定にすぎません。

したがって、フィッシャーの方程式を見ると、次のようになります。

a = q*b = |b|^{-2} * a * b' * b

私たちはそれを見ることができます

a*b' = | -dotP(a,-b)| 
       |crossP(a,-b)|

など

a*b'*b = |        -dotP(crossP(a,-b),b)         |
         | crossP(crossP(a,-b),b) - dotP(a,-b)b |

この四元数の上部 ([w]) の部分は、2 つの直交ベクトル間の内積であるため、ゼロでなければなりません。下の部分は のスケーリングバージョンaです。内積部分は、 への射影を追加します( の長さの 2 乗でスケーリングされます)。これにより、 と平行になります。の長さの 2 乗を割ると、残るのは だけです。bn|a|*|b|*|b|abbaba

さて、これが実際に役立つかどうかという問題は別です。a最初から が必要なので、を見つけるのはあまり役に立ちません。さらに、q*c期待どおりにならない可能性は高いですが、それが何であるかをお知らせください。

于 2013-07-18T03:26:26.423 に答える