12

回転ベクトルは、回転軸と角度の大きさを直接格納することによって回転を表します。

クォータニオンは、回転を表すためにはるかに多く使用されているようです。コンピュータグラフィックスで回転ベクトルよりもクォータニオンが優先されるのはなぜですか?

4

2 に答える 2

17

もちろん、コンピューターの場合、クォータニオンの計算ははるかに簡単です(人間としては、とにかく3D回転を気にする必要はありません)。

  • ベクトル表現で2つの回転を連結する場合はどうしますか?これを行うには(コストのかかる三角法を使用して)クォータニオンまたはマトリックス形式に変換する必要がありますが、従来のクォータニオン乗算を使用すると、クォータニオンを効率的に連結できます。

  • ベクトル形式の回転を使用して点/ベクトルを回転させたい場合、またはそれを行列としてGL / D3Dに送信したい場合はどうしますか?これを行列に変換します(ここでもコストのかかる三角法を使用します)。一方、クォータニオンは、必要なサインとコサインをすでにエンコードしているため、非常に効率的に行列に変換されます。

したがって、行列とクォータニオンは、はるかに適切な回転表現です。これらの2つのクォータニオンはよりコンパクトであり、三角法を使用していても、軸-角度表現に変換する(および元に戻す)ことも非常に簡単です。したがって、周辺で軸角度情報が必要な場合(実際の回転軸と角度が必要になることがあるのは私たち人間だけであり、コンピューターは実際には気にしません)、それを使用することはできますが、内部表現と計算の四元数または行列ははるかに良い選択。

クォータニオンが「3次元複素数」の説明で最初は少し重いように思われる場合は、正確な数学的基盤を気にしないでください。それらがどのように機能し、どのように使用するかを理解し始めてください。実用的には、これらは一種の軸角度表現ですが、効率的な変換と計算に必要な、暗黙的にエンコードされたサインとコサインを使用します。

于 2012-06-07T07:27:52.123 に答える
0

クォータリオンが使用され、ベクトルよりも優先されることがある潜在的な理由の適切な説明については、この非常に興味深い記事を参照してください。この長くて洞察に満ちたスレッドでは、クォータニオンの有用性について反対意見があります。

TL; DR-著者の見解では、クォーターは実際には必要ありませんが、複雑で複雑な性質があるため、プログラマーにとって非常に魅力的であるように見えます。クォータニオンを使用して表現されるすべての演算は、ベクトルを使用して表すことができます。しかし、この意見はかなり物議を醸しています。

于 2012-06-07T06:32:44.537 に答える