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

然后绕轴旋转 90° (x=0, y=0, z=1) 会将“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 以及一个角度,而且它们很接近。下面更多...

四元数可用于表示旋转,因此它们对图形很有用:

单位四元数提供了一种方便的数学符号,用于在三个维度上表示对象的方向和旋转。与欧拉角相比,它们更易于组合并且避免了云台锁定的问题。与旋转矩阵相比,它们在数值上更稳定并且可能更有效。

那么这 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 回答