私は物理学者であり、いくつかのプログラミングを学んでおり、行列/ベクトル形式で物事を書く代わりに、回転にクォータニオンを使用している多くの人々に出くわしました。
物理学では、クォータニオンを使用しない非常に良い理由があります(ハミルトン/ギブスなどについて時々語られる奇妙な話にもかかわらず)。物理学では、説明に優れた分析動作が必要です(これは正確に定義された意味を持ちますが、通常のイントロクラスで教えられるものをはるかに超える技術的な方法であるため、詳細には触れません)。クォータニオンにはこのような優れた動作がないことが判明したため、それらは有用ではなく、ベクトル/行列は有用であるため、これらを使用します。
ただし、解析構造を使用しない厳密な回転と記述に限定して、3D回転はどちらの方法(または他のいくつかの方法)でも同等に記述できます。
一般に、X 2 = X ' 2という制約に従って、点X =(x、y、z)を新しい点X'=(x'、y'、z')にマッピングする必要があります。そして、これを行うことはたくさんあります。
素朴な方法は、これが定義する三角形を描画して三角法を使用するか、点(x、y、z)とベクトル(x、y、z)の間の同型写像と関数f(X)=X'を使用することです。行列MX=X'、またはクォータニオンを使用する、または他の方法(x、y、z)T。(a、b、c)(x'、y'、 z')など。
数学の観点から、これらの説明はすべてこの設定で同等です(定理として)。それらはすべて、同じ数の自由度、同じ数の制約などを持っています。
では、なぜクォータニオンがベクトルよりも優先されるように見えるのでしょうか。
私が見る通常の理由は、ジンバルロックや数値の問題ではありません。
これはオイラー角の問題にすぎないため、ジンバルロックなしの議論は奇妙に思えます。これは座標の問題でもあり(極座標のr = 0での特異点(ジャコビアンはランクを失う)のように)、これは局所的な問題であり、座標を切り替えて縮退から回転することで解決できます。または2つの重なり合う座標系を使用します。
これらの両方(および代替案)がどのように実装されるかについては詳細にわからないため、数値の問題についてはよくわかりません。クォータニオンの再正規化は、回転行列の場合よりも簡単であることを読みましたが、これは一般的な行列の場合にのみ当てはまります。回転には、これを簡単にする追加の制約があります(これは、クォータニオンの定義に組み込まれています)(実際、自由度が同じであるため、これは真である必要があります)。
では、ベクトルや他の代替手段よりもクォータニオンを使用する理由は何ですか?