如何在3D空间中存储和修改角度

时间:2014-09-23 14:09:19

标签: c++ rotation game-physics glm-math

这不是要理解角度物理,而是更多如何实际实现它。

例如,我每帧使用一个简单的线性插值(使用dT) 我遇到了角度单位的问题,我希望能够绕任意轴旋转。

(用glm) 使用vec3作为扭矩,惯性和角速度对单轴非常有效。 更多,你得到万向节锁。 (即您可以围绕局部x,y或z旋转,但叠加会阻止正确的结果)

使用四元数我无法使它在时间,惯性或长时间内正常运行。

是否有任何经过验证的方法来表示这些功能?

1 个答案:

答案 0 :(得分:0)

通常的解决方案是使用matrix representation of rotation。顺序的两个旋转可以通过将它们各自的矩阵相乘来表示。并且因为矩阵乘法不是对称的,所以2个旋转的顺序很重要 - 正如它应该的那样。