如何为射弹获得一个角度,使其在分解重力的同时击中矢量2目标

时间:2016-11-26 22:24:07

标签: javascript math physics

我有一个可以射击射弹的敌人,但是我的问题是我试图找到击中玩家所需的角度,但射弹必须以精确的速度射击(即不能更慢地射击射弹) )。我已经尝试了范围方程,但我无法简化它,因此我得到了θ(角度),即y距离,x距离,速度和重力的因素。

抱歉这个庞大的问题, Teh Cosmic Sloth

1 个答案:

答案 0 :(得分:0)

嗯......你有: D - 到目标的距离

g = 9.8 - g- force

v - 你的射击速度

你沿X的速度是v * cos(a)

你沿Y的速度是v * sin(a)

你需要行驶距离D,因此你的飞行时间是 t = D / v * cos(a)

在那段时间内,您需要达到飞行的最大高度并退回。在最大点,您的垂直速度将为0,在飞行结束时,如果我们忽略空气阻力,您的垂直速度将等于起始垂直速度。

因此,请记住,速度方程为v = acc * t(其中acc为g)t = v / acc。在您的情况下,您必须将速度降至0并将其恢复为原始状态,因此您的因子为2.

t = 2 *(v * sin(a)/ g)

让我们总结一下:

t = D / v * cos(a)

t = 2 *(v * sin(a)/ g)

2 *(v sin(a)/ g)= D / v cos(a)

除了角度之外,你知道的一切。

所以,通过做一些变量传递你得到

2sin(a) cos(a)= D g / v ^ 2

是:

sin(2a)= D * g / v ^ 2

2a = arcsin(D * g / v ^ 2)

所以,这一定是答案。

a = arcsin(D * g /(v ^ 2))/ 2