如何推断旋转矩阵值?

时间:2012-12-10 10:00:05

标签: opengl dead-reckoning

我正在使用chai3d api,它使用3x3浮动pt矩阵在我的虚拟世界中存储对象方向。

我想在服务器定期更新之后在客户端预测这些方向,以便我拥有一致的虚拟图形世界。

我通过发送位置和速度值来预测对象(例如opengl cube)的位置。

方向的角速度是否与位置的速度相同?

如果是,如何计算此3x3矩阵的角速度并将其用于外推?

1 个答案:

答案 0 :(得分:3)

变换矩阵本质上是另一个坐标系内新坐标系的表示。如果添加列,您甚至可以将翻译放入其中。如果你还记得你的微积分和物理,那么你可能还记得

r = 1/2 a² t + v0 t + r0

v = d/dt r = a + v0

a = d/dt v

要从速度'v'到位置'r',你必须整合。在标量的情况下,你将v乘以时间。但是用矩阵进行标量乘法只会缩放它,而不是旋转它。所以你必须做点别的事。如果要使用矩阵执行此操作,关键字是矩阵幂,即计算矩阵的幂。

假设您有一个差分旋转,d / dt R,那么您可以通过将相应的旋转矩阵无限地与自身相乘来对其进行积分,即取幂。

但是,在数学上也有更好的方法来做到这一点。非常接近于与因子相乘的东西。那就是:使用四元数而不是矩阵来表示方向。事实证明,简单地缩放四元数与仅仅乘以它所描述的旋转相同。

Google应该使用的关键字(因为StackOverflow是将其引入整个四元数理论的错误位置):