2

我正在尝试在Scorched earth 或 Pocket Tanks 的脉络中用Java制作坦克游戏,因为用户定义了射弹的角度和速度。我在互联网上寻找一种将风速应用到我们的弹丸系统中的方法。如何将风速添加到弹丸运动中?

我的程序计算速度的 X 加速度和 Y 加速度,并考虑达到的最大高度、到达终点所需的总时间以及发射的弹丸的角度。

4

3 回答 3

3

如何将风速添加到弹丸运动中?

尝试使用阻力= A * |Δv| * Δv *(表面积)+ B * Δv * 表面积,其中 Δv =(风速)-(弹丸速度),并将其添加到模拟中的其他力中。(然后使用牛顿定律 (ΣF = ma) 计算加速度)

请注意,表面积是暴露在风中的有效面积。例如,如果你的弹丸是圆盘形的,如果风吹在圆盘的表面上,阻力就会很大,而如果风吹过圆盘,阻力就会很小。

还要注意,这不包括阻力扭矩(施加在弹丸不同点的力导致非零净扭矩,因此弹丸的角动量发生变化),例如在风车或落下的枫树种子上。这可能比阻力更难建模。

于 2010-12-10T19:07:37.913 回答
2

为了简单起见,如何根据风的方向与弹丸的行进方向相比较来增加或减少水平速度。

如果是顺风,它将随着时间的推移增加一定量的速度,直到达到顺风可以对弹丸本身贡献的最大速度,而顺风几乎也是如此,除了与某些特定角度弹丸的水平速度 足够高速度的逆风可能会逆转水平速度。

弹丸在空中的时间越长,风就越有时间发挥它的魔力。

于 2010-12-10T19:13:21.710 回答
2

或者,您可以只使用常规力,而不是使用阻力。如果您的对象都是相同的大小和形状(横截面形状),只需选择一个 F 并将该力应用于您的速度计算。

于 2010-12-10T19:14:05.960 回答