Java 在我们的射弹运动中实现风速?

Java 在我们的射弹运动中实现风速?,java,game-physics,Java,Game Physics,我试图在java中以焦土或袖珍坦克的形式制作一个坦克游戏,用户定义投射物的角度和速度。我在互联网上查找了一种将风速应用到我们的射弹系统中的方法。如何将风速添加到投射物运动中 我的程序计算速度的X加速度和Y加速度,同时考虑到达到的最大高度、到达终点所需的总时间以及发射的弹丸的角度 如何将风速添加到投射物运动中 尝试使用a=a*|Δv |*Δv*(表面积)+B*Δv*表面积,其中Δv=(风速)-(射弹速度),并将其添加到模拟中的其他力中。(然后使用牛顿定律(∑F=ma)计算加速度) 请注意,表面积是

我试图在java中以焦土或袖珍坦克的形式制作一个坦克游戏,用户定义投射物的角度和速度。我在互联网上查找了一种将风速应用到我们的射弹系统中的方法。如何将风速添加到投射物运动中

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

如何将风速添加到投射物运动中

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

请注意,表面积是暴露在风中的有效面积。例如,如果你的射弹是圆盘状的,如果风在圆盘表面吹动,阻力会很高,而如果风在圆盘上吹动,阻力会很低


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

为了简单起见,根据风的方向和弹丸的行进方向来增加或减少水平速度怎么样

如果是尾风,它会随着时间的推移增加一定数量的速度,直到达到尾风对射弹本身产生的最大速度,同样的情况也适用于逆风,除了在一定的角度和一定的水平速度下,足够高的逆风可以逆转水平速度


抛射物在空中停留的时间越长,风发挥其魔力的时间就越长。

或者,你可以使用常规力,而不是使用阻力。如果你的物体大小和形状都相同(交叉分割形状),只需选择一个F并将该力应用于你的速度计算。

在你的游戏中,我会使用类似(风速)^2*(表面)*(抛射面系数),其中“抛射面系数”的值接近.3左右。你的决定之一就是设定我所说的“抛射面因素”。此值应小于1,因为您的游戏可能不是射击板。