我开始研究四元数和物体的旋转。就我而言,我想从手机方向和方向变化中获取更多信息。
我开始在操场上玩耍,并设置了将三个欧拉角转换为Swift中simd_quatd对象的方法。
然后我提出了一种方法,可以将四元数转换回欧拉角以更好地理解(我知道,这不是直接可比的,但就我而言应该没问题)
我尝试了一些方法来回转换并计算两个四元数之间的差。到目前为止,对于简单的测试,一切都正常。所以我的方法应该没问题。 我从欧拉角归一化了我创建的每个四元数
我现在对以下测试有疑问:
计算这两者之间的差异->结果看起来像预期的
q1.inverse * q2 =滚动:5.0000000001°-俯仰:0.0°-偏航:0.0°
尝试将第二四元数以计算出的差值旋转回去以获得第一个四元数。我尝试了多种方法,但都无法正常工作。
带有旋转公式的代码:
q2 * qDiff.conjugate.inverse = roll:35.4762955479° - pitch:4.7750098916° - yaw:1e-10°
所以我想知道我的计算有什么问题吗?我敢肯定,如果一切都正确完成,这种偏移就不会发生。 四元数是否可行?还是必须将计算出的差值转换为矢量然后尝试旋转?