C++ 转向行为、追求、如何预测线性向量(数学)?
因此,我正在研究驾驶行为,我成功地做了一些简单的寻找、逃离和到达S.B.然而,我对追求S.B.有一些疑问 我读到这篇文章是为了计算我的目标代理未来的一个点 我应该这样计算C++ 转向行为、追求、如何预测线性向量(数学)?,c++,artificial-intelligence,C++,Artificial Intelligence,因此,我正在研究驾驶行为,我成功地做了一些简单的寻找、逃离和到达S.B.然而,我对追求S.B.有一些疑问 我读到这篇文章是为了计算我的目标代理未来的一个点 我应该这样计算 SVector nVector = v.pos + (vMagnitude * Velocity * time); //This get a point in advance from the agent 我在pursuit中编写了一个非常原始的代码: SVector CBoid::Pursuit(const SVector
SVector nVector = v.pos + (vMagnitude * Velocity * time); //This get a point in advance from the agent
我在pursuit中编写了一个非常原始的代码:
SVector CBoid::Pursuit(const SVector& vTarget)
{
//get the vector from this Agent to Target Agent.
SVector nVector = position - vTarget;
//Acquire the lenght of vector between this and Target.
double vMagnitude = nVector.Magnitude();
//locate the new point and set my current vector to that point.
nVector = vTarget.position + (vTarget.Magnitude() * vTarget.Velocity * vTarget.time);
//if this Magnitude is less than target radius, start slowing down. //this part is just an idea.
if (vMagnitude > AGENTS_RADIUS && vMagnitude < 0.01)
{
double slowDownScalar = vMagnitude / AGENTS_RADIUS;
nVector * slowDownScalar;
return Seek(nVector);
}
else
return Seek(nVector);
}
*这是一个原始函数
我不明白的是为什么我需要这些变量。我读过很多关于向量的书,但没有读过关于这种预测方法的书。
有人能给我解释一下为什么或者如何预测向量的未来位置吗?我主要想了解,这样我就可以做我自己的S.B.与到达相比,追求的挑战是你不知道目的地,甚至可能随着目标速度的变化而变化 中间形式是拦截SB,假设目标有固定的速度和航向。这意味着你知道所有未来的位置,你可以选择一个点并规划一条通向它的路线。准确的SB将取决于初始位置、最大加速度、最大速度、转弯率,以及可能的匹配速度需求 在追踪中,您甚至需要考虑目标速度的可能变化,这意味着您需要考虑目标的最大加速度、速度和转弯率 这就是为什么你需要这些向量
没有一个单一的解决方案适用于所有情况,包括您的情况。你可能需要温习一下线性代数。我终于明白了如何在将来得到分数。我总是理解穹窿,但我总是感到困惑,因为我缺乏一个物理表征。我在youtube上得到了很大的帮助:游戏开发者数学谢谢。。我将重温线性代数: