如何模拟弹丸运动?

时间:2016-11-28 09:08:11

标签: java libgdx

我正在使用libgdx创建一个关于抛射物运动的模拟器,类似于this。根据我的理解,速度x和速度y是分开的并且不会相互影响,因此被倾斜的物体将由于重力而下降。所以这意味着如果物体初始速度是40米/秒那么这意味着它只是水平引用?或x = 40m / s,那么在计算初始速度和角度的x和y速度时,要遵循的公式是什么?

3 个答案:

答案 0 :(得分:1)

"速度"是" velocity"的标量版本,所以如果你想象速度的xy分量形成一个直角三角形,那么速度是sqrt(x^2 + y^2)每个毕达哥拉斯。

由此得出,初始x速度实际上是speed * cos(angle)yspeed * sin(angle),其中angle是以地平线的弧度来衡量的。< / p>

答案 1 :(得分:1)

首先,

  

所以这意味着如果物体初始速度是40米/秒,则意味着它只是水平引用   Nop 40m / s(可以说这是 v )意味着初始发射速度可以“分解”为2个彼此垂直的部分, x = vCos(角度) y = vSin(角度)

因此,如果你按照这些公式设法在屏幕上绘制点,那么你可以绘制路径。(在飞行的任何时刻x / y的确切公式是Y = yt-0.5gt ** 2和X = xt)..记住这些公式只在没有空气的情况下才有效,

一旦有空气阻力,事情就会有点奇怪,微积分会占据整个事物......我相信这可以解释你所处的情况。

答案 2 :(得分:1)

@Alnitak已经确定了初始速度部分 - 您需要知道初始速度和初始角度(从水平方向上测量),然后您可以使用他的公式计算出的初始x和y分量速度(称为x0y0 - 这些是固定数字或常量)。

缺少的所有答案都是如何计算速度的x和y分量随时间变化的方式。

假设没有空气阻力(对于典型的游戏可能是公平的),没有水平加速度,这意味着x分量始终固定在x0

垂直地由于重力导致加速g,通常由9.8ms-2近似,但你可以调整它以使感觉正确。

要在时间y秒之后获得垂直速度t,假设它以初始垂直速度y0(您已经计算过)开始,则可以执行以下操作:

y = y0 - 9.8*t

(重力下降后减去)

因此,在时间t,您的速度为(x0, y0 - 9.8*t)

Google&#39;运动学方程式&#39;了解更多信息