我无法弄清楚等式是什么来找到目标的速度。我正在使用sf :: Vector2f在2D游戏中找到到达函数。我只需要目标速度的等式。任何人都可以帮我一点吗?这是我到目前为止所拥有的。
void Steering::Arrival( sf::Vector2f position, sf::Vector2f target, float maxSpeed, float maxAcceleration, float timeToTarget, float slowRadius, float targetRadius, float targetSpeed, double distance, SteeringOutput& steering ){
timeToTarget = 0.1;
steering.linear = target - position;
distance = sqrt( steering.linear.x * steering.linear.x + steering.linear.y * steering.linear.y);
targetSpeed = maxSpeed * distance / slowRadius;
//Check if arrived at target
if (distance < targetRadius)
{
MathHelper::ZeroVector;
}
//Check if we are out of the slowRadius
if (distance > slowRadius)
{
targetSpeed = maxSpeed;
}
else
{
targetSpeed = maxSpeed * distance / slowRadius;
}
提前谢谢。
答案 0 :(得分:0)
目标速度=(从位置到目标的单位矢量)*(目标速度)。 如果您需要预先定位,请搜索“卡尔曼过滤器”