您还没有完全生成生成抛物线的信息,但是您有足够的信息来推导它。问题是发射角度,ϴ。通常,您可以从游戏参数中获得此信息。
由于您指定了抛物线,我推断您忽略了空气摩擦。假设你有足够的动力达到目标,就会有两个 ϴ 值击中目标;这些值之间的任何值都会过冲;高于或低于该间隔的任何东西都将达不到要求。
我将从游戏参数中假设 ϴ 并研究抛物线。为方便起见,我假设武器位于 (0, 0, 0),目标位于 (x, y, 0)。从这里开始,数学相对容易。
地面角度(即罗盘方向)由 给出φ = arctan(y/x)
。我们将把射弹的速度分解为 x、y 和 h(垂直或高度)分量。
原始水平分量是s = v*sin(ϴ)
(s = 地速)。距原点的距离是时间的线性函数:地速是恒定的。
垂直位置是弹丸高度的规范公式:
h = 1/2 * g * t^2 + v0 * t + h0
v0 = initial upward velocity = cos(ϴ) * starting velocity.
h0 = initial height (0 in our case?)
t = time
g = gravitational force, -9.8 m / sec^2
分解地速,我们得到每一个作为时间的函数:
x = s * sin(ϴ) * sin(φ) * t
y = s * sin(ϴ) * cos(φ) * t
h = -4.9 * t^2 + cos(ϴ)*v * t
有你的 3D 坐标。