四元数旋转只是一个带有X,Y,Z的矢量,物体将朝哪个方向旋转,还有一个滚动,可以将物体转动到轴上?
这么简单吗?
如果你有X = 0,Z = 0和Y = 1,那么对象将面朝上?
如果Y = 0,Z = 0且X = 1,则对象将面向右边?
(假设X为右,Y向上和Z深度)
答案 0 :(得分:42)
四元数具有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)
答案 1 :(得分:18)
quaternion一般是将复数扩展为4维。所以不,它们不仅仅是x,y和z,还有一个角度,但它们很接近。更多信息......
四元数可用于represent rotation,因此它们对图形非常有用:
单位四元数提供了方便 用于表示的数学符号 物体的方向和旋转 在三个方面。与欧拉相比 角度他们更容易撰写和 避免万向节锁的问题。 与旋转矩阵相比,它们是 在数值上更稳定,可能是 效率更高。
那么4个组件是什么,how do they relate to the rotation?
[单位四元数]点(w,x,y,z)代表a 围绕轴指向的旋转 矢量(x,y,z)的角度为α = 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度,所以它会旋转直到面朝下)。