23

クォータニオン回転は、オブジェクトが回転するX、Y、Zと、オブジェクトをその軸上で回転させるロールを持つ単なるベクトルですか?

そんなに簡単ですか?

X = 0、Z = 0、Y = 1の場合、オブジェクトは上向きになりますか?
また、Y = 0、Z = 0、X = 1の場合、オブジェクトは右向きになりますか?

(Xが右、Yが上、Zの深さを想定)

4

2 に答える 2

47

クォータニオンには4つのコンポーネントがあり、角度θと軸ベクトルnに関連付けることができます。回転すると、オブジェクトは軸nを中心に角度θだけ回転します。

たとえば、次のような立方体がある場合

 ______
|\  6  \
| \_____\     z
|5 |    | : y ^
 \ | 4  |    \|
  \|____|     +--> x

次に、軸(x = 0、y = 0、z = 1)を中心に90°回転すると、「5」面が左から前に回転します。

 ______
|\  6  \
| \_____\      z
|3 |    | :  x ^
 \ | 5  |     \|
  \|____|  y<--+

(注:これは回転の軸/角度の説明であり、OPが混乱させるものです。クォータニオンが回転にどのように適用されるかについては、http://en.wikipedia.org/wiki/Quaternions_and_spatial_rotationを参照してください)

于 2010-10-26T11:33:29.013 に答える
20

一般に、クォータニオンは複素数を4次元に拡張したものです。つまり、それらはx、y、z、および角度だけではなく、近いものです。以下の詳細...

クォータニオンは回転を表すために使用できるため、グラフィックスに役立ちます。

ユニットクォータニオンは、オブジェクトの方向と回転を3次元で表すための便利な数学表記を提供します。オイラー角と比較して、構成が簡単で、ジンバルロックの問題を回避できます。回転行列と比較して、それらは数値的に安定しており、より効率的である可能性があります。

では、4つのコンポーネントとは何ですか?また、それらは回転とどのように関連していますか?

[ユニットクォータニオン]点(w、x、y、z)は、ベクトル(x、y、z)によって方向付けられた軸の周りの回転を角度alpha = 2 cos -1 w = 2 sin -1 sqrt(x 2 + y 2 + z 2)。

では、質問に戻りましょう。

X = 0、Z = 0、Y = 1の場合、オブジェクトは上向きになりますか?

いいえ...オブジェクトはこの<0,1,0>ベクトルを中心に回転します。つまり、グラフィックシステムが右回転を使用している場合、オブジェクトはy軸を中心に回転し、上から見て反時計回りに回転します。(そして、w = sqrt(1-(0 + 1 + 0))を接続すると、ユニットクォータニオンは(0,0,1,0)になり、角度2 cos -1 0、=2*で回転します。 90度=180度またはpiラジアン。)

また、Y = 0、Z = 0、X = 1の場合、オブジェクトは右向きになりますか?

これはベクトル<1,0,0>x軸を中心に回転するため、正のx方向(右など)から見て反時計回りに回転します。したがって、上部は前方に回転します(180度なので、下を向くまで回転します)。

于 2010-10-26T11:42:23.230 に答える