Math 弹道的三维目标导引公式

Math 弹道的三维目标导引公式,math,3d,Math,3d,我想知道是否有一个目标导向公式,用于弹道弹道中的三维目标导向,如果没有,我想知道是否有可能将二维目标导向公式转换为三维目标导向公式,方法是沿目标运动对齐平面?在但是,无法保证目标在弹丸在空中时不会改变航向、加速或减速。在任何情况下,当你引导目标时,你可以假设目标的速度将保持不变,或者如果目标正在加速,则其加速度将保持不变 这是我写的一篇关于预测一段时间内的行驶距离,考虑加速度的文章。这是我使用的代码 这将计算在给定恒定加速度的情况下随时间移动的距离。在本例中,constantAccel是一个速度

我想知道是否有一个目标导向公式,用于弹道弹道中的三维目标导向,如果没有,我想知道是否有可能将二维目标导向公式转换为三维目标导向公式,方法是沿目标运动对齐平面?

在但是,无法保证目标在弹丸在空中时不会改变航向、加速或减速。在任何情况下,当你引导目标时,你可以假设目标的速度将保持不变,或者如果目标正在加速,则其加速度将保持不变

这是我写的一篇关于预测一段时间内的行驶距离,考虑加速度的文章。这是我使用的代码

这将计算在给定恒定加速度的情况下随时间移动的距离。在本例中,
constantAccel
是一个速度,如果目标没有加速,则该参数仅使用0.0f

float CalcDistanceOverTime(const float initVelocity, 
                           const float constantAccel,
                           const float timeDelta)
{
    return  (initVelocity * timeDelta)
          + (0.5f * constantAccel * (timeDelta * timeDelta);
}
下面是一个例子:

Vector3 targetsVelocity(3.0f, 0.0f, 3.0f);
float targetsAcceleration = 1.0f;

float distanceTraveled = CalcDistanceOverTime(targetsVelocity, targetsAcceleration, timeDelta)

Vector3 finalPosition = targetsVelocity * distanceTraveled;
您可能会注意到,需要一个
timeDelta
来传递到此公式。这意味着,根据你的射弹的轨迹和速度,你需要知道到达目标需要多长时间,然而,在你知道它将在哪里之前,你不知道这可能需要多长时间,这一事实使它变得更加困难。我不确定这个的确切公式,但我相信通过微积分,你可以计算,基于你的射弹的速度和速度,以及你的目标的速度和速度,考虑到重力和重力,你应该能够在空间中找到一个点,这两个点可以碰撞

如果上述方法不可行,那么你可以选择一个固定的时间增量,如果你能保证你的射弹可以以你想要的任何角度和速度发射。例如,选择3秒作为你的时间增量,你知道目标在3秒内会在哪里,然后立即发射一枚你知道会在3秒内到达空间点的射弹


为了以防万一,这里有一个关于3D弹道计算的例子。使用这种方法计算到达目标的时间应该很简单,根据输出的垂直速度和位置,只需使用重力计算距离该位置达到目标位置高程的秒数。

目标引导公式的含义是什么?你能举一个更具体的例子吗?我想你需要更好地解释你心目中的确切2D公式。可能是同一个人:目标在加速吗?你对弹道有什么限制吗:初始速度,固定角度,0.5f*5*1秒=2.5,0.5f*10*1秒=5。我看不出有什么问题