计算出的四元数与反向旋转之间的差

时间:2019-12-27 18:49:25

标签: swift-playground quaternions

我开始研究四元数和物体的旋转。就我而言,我想从手机方向和方向变化中获取更多信息。

我开始在操场上玩耍,并设置了将三个欧拉角转换为Swift中simd_quatd对象的方法。

然后我提出了一种方法,可以将四元数转换回欧拉角以更好地理解(我知道,这不是直接可比的,但就我而言应该没问题)

我尝试了一些方法来回转换并计算两个四元数之间的差。到目前为止,对于简单的测试,一切都正常。所以我的方法应该没问题。 我从欧拉角归一化了我创建的每个四元数

我现在对以下测试有疑问:

  1. 从(30,5,5)(滚动/俯仰/偏航)角度创建四元数
  2. 从角度(35,5,5)创建第二个四元数
  3. 计算这两者之间的差异->结果看起来像预期的

    q1.inverse * q2 =滚动:5.0000000001°-俯仰:0.0°-偏航:0.0°

  4. 尝试将第二四元数以计算出的差值旋转回去以获得第一个四元数。我尝试了多种方法,但都无法正常工作。

带有旋转公式的代码:

q2 * qDiff.conjugate.inverse = roll:35.4762955479° - pitch:4.7750098916° - yaw:1e-10°

所以我想知道我的计算有什么问题吗?我敢肯定,如果一切都正确完成,这种偏移就不会发生。 四元数是否可行?还是必须将计算出的差值转换为矢量然后尝试旋转?

0 个答案:

没有答案