什么是四元数旋转?

时间:2010-10-26 11:28:37

标签: 3d rotation quaternions angle

四元数旋转只是一个带有X,Y,Z的矢量,物体将朝哪个方向旋转,还有一个滚动,可以将物体转动到轴上?

这么简单吗?

如果你有X = 0,Z = 0和Y = 1,那么对象将面朝上?
如果Y = 0,Z = 0且X = 1,则对象将面向右边?

(假设X为右,Y向上和Z深度)

2 个答案:

答案 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度,所以它会旋转直到面朝下)。