私は物理学者で、プログラミングを学んでおり、行列/ベクトル形式で書く代わりに回転に四元数を使用する多くの人々に出会ってきました。
物理学では、四元数を使用しない非常に良い理由があります(ハミルトン/ギブスなどについて時折言われる奇妙な話にもかかわらず)。物理学では、説明に優れた分析動作が必要です(これには正確に定義された意味がありますが、通常のイントロクラスで教えられているものをはるかに超える技術的な方法があるため、詳細には触れません)。四元数にはこの優れた振る舞いがないため、役に立たないことがわかります。また、ベクトル/行列にはあるので、それらを使用します。
ただし、厳密な回転と分析構造を使用しない説明に制限されているため、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つの重複する座標系を使用します。
私はこれらの両方(および代替手段)がどのように実装されるか詳細に知らないので、数値の問題についてはあまり確信がありません。四元数の再正規化は、回転行列の場合よりも簡単であると読みましたが、これは一般的な行列にのみ当てはまります。回転には、これを自明にする追加の制約があります(これは、四元数の定義に組み込まれています)(実際には、自由度が同じであるため、これは真でなければなりません)。
それでは、ベクトルまたは他の選択肢よりも四元数を使用する理由は何ですか?