计算vector来捕捉坠落的物体

我在三维世界有两个对象。 一个是弹道抛射物:就是说,它是以一些已知的重力加速度自由落体的。 另一个是捕手,速度不变,不受地心引力的影响。 我想要计算捕手必须沿着的vector来拦截和捕捉落下的抛射物(或捕捉器和抛射体之间的拦截位置)。

根据我的估算,这个问题可以用公式表示为:

拦截位置=捕手开始位置+捕手速度*拦截时间

拦截位置=抛射物开始位置+抛射物开始速度*时间+ 1/2 *重力加速度*拦截时间^ 2

…除截取时间以外的所有命名variables都是三维向量。 在这些方程中,我知道:

  • 捕手和抛射物的开始位置
  • 射弹的当前速度
  • 抛射体的重力加速度
  • 捕手的速度的大小。

我不知道,可以通过找出以下任何一个来解决问题:

  • 捕手的速度的方向
  • 拦截位置
  • 截获时间

但是我真的很努力地find这些方程式的解决scheme。 谁能帮我吗? 我的方法在这里有什么遗漏/错误吗?

最终,对这个问题的正确答案被certificate是“太难了,反而select解决另一个问题”。

我最终做的就是使用(捕手和抛射体之间的距离/捕手速度)find一个近似的拦截时间,然后把它插入问题中两个公式中的第二个来计算当时的抛射体位置。 然后,我会勉强捕手的速度,以确保它在正确的时间到达目的地。

实际上,这意味着捕手在大多数情况下确实能够捕捉抛射物(在这种情况下可能会这样做),而且在大多数情况下,“被淹没”的附加速度并不是太明显。

对于对这个问题的技术上正确的解决scheme感兴趣的纯粹主义者,在这个math堆栈交换的答案中提出了一个聪明的方法。 但是,我希望你们运气好,把它解决成比我实际的解决办法。

  • 构建公式

地面上的动能(捕手)等于他处于起始位置时的潜能。 这意味着(1/2) mv^2 = mgh >> v^2 = 2gh >> v = sqrt(2gh)

现在我们已经知道v的截取是gh的根源,我们必须定义g和h。 可以说h是相对于捕手的高度, g = 10m/s^2 。 这意味着v = sqrt(20*h)

我们也知道a = v/t ,因为g是我们的a, g = v/t >> t = v/g >> t = sqrt(20*h)/10

知道我们可以计算捕手的平均速度: v = x/t >> v = x/(sqrt(20*h)/10)

捕捉器速度的最终公式= x / (sqrt(2g*h)/g)

Ps:a =加速度,g =重力,h =高度,x =捕手的距离,sqrt =平方根

[代码即将推出]