如何计算同时转动和加速的物体的位置?

时间:2011-05-03 08:39:52

标签: physics game-physics

我正在尝试编写一个简单的游戏,但我坚持认为简单的物理学。我有一个物体,在点0,0,0,并以每秒1单位的速度行进。如果我给出一个指令,那个物体必须每秒转15度,持续6秒(所以它在它的起始位置右边90度),并以每秒1个单位加速4秒(所以它的最终速度是5每秒单位),我该如何计算它的终点?

我想我知道如何为一个没有加速的物体回答这个问题,因为它只是一个圆圈。在上面的例子中,我知道圆的圆周是4 *距离(因为它穿过圆的1/4),从中我可以计算半径和角度,并使用简单的触发来解决答案。

然而,因为在任何给定的时刻,物体的行进速度比前一刻稍快,我的最终结果不是圆形,它会是某种弧形。我想我可以通过循环每个步骤(比如每秒60步)来估计终点,但这听起来容易出错并且效率低下。

有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:1)

你的踩踏概念正是你所做的。

几乎所有游戏都在所谓的“游戏滴答”下运作。实际上有许多不同的标记可以进行。

“游戏勾选” - 每个游戏勾号,一组请求被触发,AI被重新评估,整体游戏状态已经改变。

“physics tick” - 每个物理标记,每个物理对象都会根据其当前的物理状态进行状态更改。

“graphics tick” - 也称为渲染循环,这只是将游戏状态绘制到屏幕上。

游戏滴答和物理经常打勾,但不需要,彼此重合。您可以使用物理刻度线以当前速度沿其当前运动矢量移动对象,并在必要时将重力应用于其中(改变其速度),同时在完全独立的循环中添加额外的加速度(可能通过火箭助推器?)。通过适当的多线程护理,它可以很好地融合在一起。它们越是脱离耦合,就越容易将它们与之后的更好实现交换出去。

通过时间步骤模拟几乎所有物理学都是在实时游戏中完成的。我甚至曾经为国防部做过热模型,这就是我们在那里进行物理建模的方式(我们只需要使用更大的计算机:-))

此外,这允许您在物理引擎中实现复杂的旋转。 物理引擎中的特殊情况越少,破坏的东西越少。

答案 1 :(得分:0)

你所问的实际上是一个数学变化率问题。每个运动的物体的位置位置为(x,y,z)。如果您能够将分量速度和加速度分解为各个平面,则最终终点将是(x1,y1,z1),这是该平面中方程的相应结果。

希望它有所帮助(: