什么是四元数旋转?
Posted
技术标签:
【中文标题】什么是四元数旋转?【英文标题】:What's a quaternion rotation? 【发布时间】:2011-04-30 16:55:29 【问题描述】:四元数旋转是否只是对象将朝其旋转的带有 X、Y、Z 的向量,以及使对象绕其轴旋转的滚动?
就这么简单吗?
意思是如果你有 X=0、Z=0 和 Y=1 对象将面朝上? 如果 Y=0、Z=0 和 X=1,对象将面向右侧?
(假设 X 向右,Y 向上和 Z 深度)
【问题讨论】:
【参考方案1】:四元数有 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)
【讨论】:
@clamp:取决于系统是左撇子还是右撇子。 OP 说“Y 向上和 Z 深度”。 @LarsH:把你的头放在 z 轴的下方,然后在镜子里观察整个事情。 :) 这个解释很简单,但很完美。谢谢!【参考方案2】:quaternion 通常是复数扩展到 4 维。所以不,它们不仅仅是 x、y 和 z 以及一个角度,而且它们很接近。更多下文...
四元数可用于represent rotation,因此它们对图形很有用:
单位四元数提供了一个方便的 表示的数学符号 对象的方向和旋转 在三个维度。与欧拉相比 角度他们更容易组成和 避免云台锁问题。 与旋转矩阵相比,它们是 在数值上更稳定,可能是 更高效。
那么 4 个组件是什么?how do they relate to the rotation?
[单位四元数]点(w,x,y,z)代表一个 绕轴旋转 角度 alpha 的向量 (x,y,z) = 2 cos-1 w = 2 sin-1 sqrt(x2+y2+z2)。
回到你的问题,
如果您有 X=0、Z=0 和 Y=1 的含义 物体会朝上吗?
不...如果您的图形系统使用右手旋转,对象将围绕此<0,1,0>
向量旋转,即它将围绕 y 轴旋转,从上方看逆时针旋转。 (如果我们插入 w = sqrt(1 - (0 + 1 + 0)),你的单位四元数是 (0,0,1,0),它将旋转角度 2 cos-1 sup>0, = 2 * 90 度 = 180 度或 pi 弧度。)
如果您有 Y=0、Z=0 和 X=1,那么对象将面向右侧?
这将围绕矢量<1,0,0>
(x 轴)旋转,因此从正 x 方向(例如右)看,它将逆时针旋转。所以顶部会向前转动(180 度,所以它会旋转直到面朝下)。
【讨论】:
以上是关于什么是四元数旋转?的主要内容,如果未能解决你的问题,请参考以下文章