まず、これは複製ではありません。一見関連する他のすべての質問は、2 つのベクトルの方向間の回転を表すクォータニオンを求めます。つまり、解はこれら 2 つのベクトルのノルムを考慮していません。
これが私が欲しいものです。非単位ベクトルa = (0, 0, 2)
とがあるとしb = (3, 1, 2)
ます。元のハミルトンの四元数の定義に従いq = a / b
ます (もちろん、ベクトルを分割することはできないため、この定義は象徴的です)。この概念については、ウィキペディアを参照してください。q
そのことから、どういうわけかそのようなことを見つけることができると推測できます(おそらくそれは素朴です)q * b = a
。
言い換えれば、与えられa
て、掛けると が得られるb
四元数を見つけたいのです。の方向に単純に回転する単純な回転 (ユニタリ) クォータニオンには興味がないことに注意してください。実際、回転に加えて、 のノルムも のノルムにスケーリングする必要があります。q
b
a
b
a
b
a
はい、私は2つの段階でそれを行うことができることを知っています:b
標準のユニタリクォータニオンアプローチで回転し、回転b
したものをノルムに手動でスケーリングしa
ます。実際、これら 2 つの操作の計算効率の高い構成が必要であり、達成可能だと感じていますが、従来のユース ケースではないように思われるため、情報は広まっていません。
たぶん私は間違っています。あなたの経験を共有してください。ありがとうございました。
math.stackexchange.comではないのはなぜですか?
徹底的な数学的導出や説明には興味がないからです。私の関心事は、そのような四元数を構築するための計算効率の高いアルゴリズムです。それにもかかわらず、そのような詳細が回答に含まれる場合、私はそれと、おそらく将来同じ問題に出くわした他の人にも感謝します.
僅差の有権者の場合:
あるベクトルから別のベクトルへの回転を表すクォータニオンの検索も閉じてください。
さらに、質問に適切にタグを付けました。私の質問は、StackOverflow の一部であるこれらの人口の多いタグに属しています。その結果、クローズの理由は意味がありません。