1

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

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

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

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

如果是,我如何从这个 3x3 矩阵计算角速度并将其用于外推?

4

1 回答 1

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,那么你可以通过将相应的旋转矩阵无限地乘以它本身来整合它,即取一个幂。

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

你应该用谷歌搜索的关键字(因为 StackOverflow 是在整个四元数理论中引入一个错误的地方)是:

于 2012-12-10T10:13:07.063 回答