【问题标题】: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 深度)

【问题讨论】:

    标签: 3d rotation quaternions angle


    【解决方案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 的含义 物体会朝上吗?

    不...如果您的图形系统使用右手旋转,对象将围绕此&lt;0,1,0&gt; 向量旋转,即它将围绕 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,那么对象将面向右侧?

    这将围绕矢量&lt;1,0,0&gt;(x 轴)旋转,因此从正 x 方向(例如右)看,它将逆时针旋转。所以顶部会向前转动(180 度,所以它会旋转直到面朝下)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-14
      • 2020-04-11
      • 1970-01-01
      • 1970-01-01
      • 2013-03-13
      相关资源
      最近更新 更多