4

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

如何计算反向旋转?

4

2 回答 2

3

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

0 0 0 1

这里的关键是公式在此处输入图像描述,其中 (w,x,y,z) = (a,b,c,d)。

实际上,由于 cos(90°) = 0 且 sin(90°) = 1,然后将 alpha 替换为 180° 并将u替换为 (0, 0, 1),得到 (0, 0, 0, 1)。

编辑:正如 Christian 所指出的,向上方向不必是z,而可以是任何单位向量u = (x,y,z) (否则通过除以其范数对其进行归一化)。在这种情况下,相应的 180° 四元数旋转将是

0 x y z

现在应用此旋转以围绕对象移动,假设您拥有相机的方向向量c_pos和的位置c_dir,然后简单地(左)将其与 共轭q = (0 x y z),并相应地移动相机位置。就像是

c_dir = q * c_dir * q^-1
c_pos = 2 * o_pos - c_pos

whereo_pos是对象的位置,c_dir应转换为实部为 0 的四元数。

于 2011-08-02T15:19:15.460 回答
-2

在我的情况下,帮我这个..

原始quat (xyzw) 反向quat (y -xw -z)

于 2012-12-05T20:17:13.797 回答