2

私が間違っているかどうか教えてください。

クォータニオンを使い始めています。(OpenGLで使用される)回転行列4 x 4を使用して、現在のモデルビューに回転行列を掛けたモデルビュー行列を計算できます。回転行列はクォータニオンから導出されます。

クォータニオンは、方向ベクトル(正規化されていない場合でも)と回転角です。結果として生じる回転は、方向ベクトルモジュールとwクォータニオンコンポーネントに依存します。

しかし、なぜオイラー軸/角度表記の代わりにクォータニオンを使用する必要があるのですか?後者は、視覚化と管理が簡単です...

私が見つけたすべての情報は、この美しい記事で合成することができます:

http://en.wikipedia.org/wiki/Rotation_representation

4

6 に答える 6

4

オイラー角とは異なり、クォータニオンはジンバルロックの影響を受けません。

于 2009-12-20T00:16:21.577 に答える
4

クォータニオンを使用する方がよい理由は、記事で説明されています。

  • DCM表現よりもコンパクトで、丸め誤差の影響を受けにくい
  • クォータニオン要素は、方向が変化するにつれてR4(S3で示される)の単位球上で連続的に変化し、不連続なジャンプ(3次元パラメーター化に固有)を回避します。これは、ジンバルロックと呼ばれることがよくあります。
  • クォータニオンパラメーターに関するDCMの表現には、三角関数は含まれません。
  • クォータニオン製品を使用して、クォータニオンとして表される2つの個別の回転を組み合わせるのは簡単です。
于 2009-12-20T00:17:47.970 に答える
3

クォータニオンの方が視覚化が容易であることに同意しませんが、クォータニオンを使用する主な理由は、「マトリックスクリープ」なしで回転を連結するのが簡単だからです。

于 2009-12-20T00:28:16.123 に答える
2

クォータニオンは通常、計算を単純化するために使用されます。クォータニオンを使用すると、変換の作成などを行うのがはるかに簡単(かつ高速)になります。リンクしたウィキペディアのページを引用するには、

それぞれがオイラー軸と角度で表される2つの連続する回転を組み合わせるのは簡単ではなく、実際にはベクトル加算の法則を満たしていません。これは、有限回転が実際にはベクトルではないことを示しています。方向余弦行列(DCM)、テンソル、またはクォータニオン表記を使用し、積を計算してから、オイラー軸と角度に変換するのが最善です。

また、軸/角度の形状、ジンバルロックに共通する問題もありません。

于 2009-12-20T00:14:24.627 に答える
1

クォータニオンは、簡単に計算できる特定の軸を中心に回転させたいシナリオで、視覚化、管理、および作成が簡単です。単一の回転角度を決定することは、回転を複数の角度に分解するよりもはるかに簡単です。

OPの修正:ベクトルは方向ではなく回転軸を表し、回転成分は角度自体ではなく、半角の正弦です。

于 2009-12-20T00:13:30.553 に答える
0
  • 前述のように、クォータニオンはジンブルロックの影響を受けません。
  • 特定の回転に対して、正規化されたクォータニオン表現が1つだけ存在します。
    • 同じ回転をもたらす、一見無関係に見える軸/角度の値がいくつか存在する可能性があります。
  • クォータニオン回転は簡単に組み合わせることができます。
    • 他の2つの軸/角度回転の累積である軸/角度表記を計算することは非常に複雑です。
  • 0.0から1.0の間の値を表す場合、浮動小数点数の精度は高くなります。

簡単に言うと、軸/角度表記は最初は最も合理的な表現のように見えますが、実際には、四元数は軸/角度表記が示す多くの問題を軽減します。

于 2009-12-20T00:41:55.387 に答える