四元数旋转是否只是一个带有 X、Y、Z 的向量,对象将朝哪个方向旋转,以及一个使对象绕其轴旋转的滚动?
就这么简单吗?
这意味着如果您有 X=0、Z=0 和 Y=1,那么物体会朝上吗?
如果你有 Y=0、Z=0 和 X=1,那么物体会向右吗?
(假设 X 向右,Y 向上和 Z 深度)
四元数旋转是否只是一个带有 X、Y、Z 的向量,对象将朝哪个方向旋转,以及一个使对象绕其轴旋转的滚动?
就这么简单吗?
这意味着如果您有 X=0、Z=0 和 Y=1,那么物体会朝上吗?
如果你有 Y=0、Z=0 和 X=1,那么物体会向右吗?
(假设 X 向右,Y 向上和 Z 深度)
四元数有 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)
通常,四元数是将复数扩展到 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 度,所以它会旋转直到面朝下)。