当以下都是常量时,我如何获得子弹击中目标所需的初始速度
time to target
gravity
initial position of the ball and the target
radius of the ball
我正在 Unity 3D 中使用 C# 作为代码来做几个例子。我不是要代码,我只是想知道要采取什么步骤来做到这一点(物理学方面)。
最佳答案
您的问题可以使用 Kinematics 解决.您需要了解一些有关物理的知识,但这一切都非常简单。
- 当子弹发射时,作用在子弹上的唯一力是重力。
- x 轴上的加速度将为 0。
- y 轴上的加速度将是重力。
让我们检查一下我们所知道的:
- 时间
- 重力
- 到目标的距离
要进行计算,您需要这些方程式:
VelocityFinal_x = VelocityInitial_x
FinalDistance_x - InitialDistance_x = VelocityInitial_x * time
VelocityFinal_y = VelocityInitial_y + gravity * time
只需重新排列第二个方程即可找到 VelocityInitial_x
请注意,我们不需要使用 z 轴。除非风在飞行中移动子弹,否则不要触摸 z 轴。
确保在子弹发射时进行一次这些计算,不要在游戏的每一帧都进行。
关于c# - 计算球击中目标所需的初始速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25046964/