我有一个四元数旋转,通常由4个值描述:a b c d
。
让我们说它转换x轴,以便我从前面看一些物体。现在我想改变这个旋转,所以我从后面看对象。
所以我基本上想要从前到后改变视点,但是使用这种旋转来做。
如何计算相反的旋转?
答案 0 :(得分:2)
从wikipedia page学习,似乎如果你想围绕 z 轴进行180°旋转,那么相应的四元数旋转就是:
0 0 0 1
这里的关键是公式,其中(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_pos
和c_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)