如何从四元数旋转计算相反的视图?

时间:2011-08-02 10:51:47

标签: math graphics rotation quaternions

我有一个四元数旋转,通常由4个值描述:a b c d。 让我们说它转换x轴,以便我从前面看一些物体。现在我想改变这个旋转,所以我从后面看对象。 所以我基本上想要从前到后改变视点,但是使用这种旋转来做。

如何计算相反的旋转?

2 个答案:

答案 0 :(得分:2)

wikipedia page学习,似乎如果你想围绕 z 轴进行180°旋转,那么相应的四元数旋转就是:

0 0 0 1

这里的关键是公式enter image description here,其中(w,x,y,z)=(a,b,c,d)。

实际上,由于cos(90°)= 0且sin(90°)= 1,然后用(0,0,1)替换180°和 u 的alpha,给你(0 ,0,0,1)。

编辑:正如Christian指出的那样,向上方向不一定是 z ,但可能是任何单位向量 u =(x,y,z)(否则通过除以其范数将其标准化)。在这种情况下,相应的180°四分之一旋转将是

0 x y z

现在要应用此旋转以便在对象周围移动,例如,您的位置是相机c_posc_dir的方向,然后简单地(左)将其共轭q = (0 x y z) 1}},并相应地移动相机位置。像

这样的东西
c_dir = q * c_dir * q^-1
c_pos = 2 * o_pos - c_pos

其中o_pos是对象的位置,c_dir应转换为具有0实部的四元数。

答案 1 :(得分:-2)

就我而言,请帮帮我..

原始四分之一(x y z w) 反向定向的quat(y -x w -z)