我已经找了很长时间才找到一个很好的数学解决方案,我的大炮在一个移动的目标上发射一个射弹,同时考虑到引力.我找到了一个解决方案,用于根据大炮的位置,目标的位置和起始速度确定大炮应该发射的角度.该公式如下所述:http://en.wikipedia.org/wiki/Trajectory_of_a_projectile#Angle_.CE.B8_required_to_hit_coordinate_.28x.2Cy.29.

这非常有效.然而,我的目标正在移动,所以如果我向目标射击并且射弹需要几秒钟才能到达目的地,目标很快就消失了.目标的x位置可以从时间确定.让我们说:x = 1000 - (10*t)其中t是以秒为单位的时间.y可以描述为:y = t.
问题是,t取决于大炮射击的角度.
因此我的问题是:如何修改wiki中描述的公式,以便将移动目标考虑在内?
另外,我可能在这里或谷歌上看到了错误的单词,但我找不到任何描述这个确切问题的解决方案.
提前感谢您的大脑时间!
作为对您的评论的回复.我想现在开火,目标在速度范围内.我认为这些都是适用于这个问题的约束.
作为对答案的回复,让我们来看看这个例子:
大炮在{0,0}并且没有移动.起始速度为100米/秒.目标位于{1000,0}并以10米/秒的速度向大炮移动(v = -10米/秒).
当我想在t = 0(立刻)开火时,我应该使用什么角度来击中移动目标?
如果我在没有考虑目标速度的情况下进行射击,我将瞄准{1000,0}并且可以使用所提到的公式计算角度.但由于它的移动,它将惨遭错过目标.
正如Beta建议的那样,我可以瞄准ie {500,0},计算弹丸到达那些坐标所需的时间(比如5秒)并等到目标距离{500,0} 5秒,是{550,0}.但这意味着我必须等待450米或45秒才能发射我的大炮.而且我不想等待,因为目标是在同一时间杀死我.
我真的希望这能为你提供足够的信息.我更喜欢一些数学解决方案,但是任何让我"非常接近"并且"正确地射击"的东西也非常受欢迎.
我怀疑找到一个公式将是相当困难的。然而,下面的迭代方案中的误差每一步都会大约下降 v/V 倍(v 为目标速度,V 为弹丸速度)。
首先将飞行时间设为零
重复
计算到目标的距离(使用飞行时间)
根据距离计算飞行时间。
直到连续两次飞行足够接近