矢量数学 - 查找对象是朝向还是远离某个点

vector math - find if object is moving towards or away from a point

本文关键字:远离 查找 对象      更新时间:2023-10-16

我不太擅长向量数学,我最接近这个的是:

sf::Vector2f dir = findObject->m_position - p_object->m_position;
float d = p_object->m_velocity.x * dir.x + p_object->m_velocity.y * dir.y;
if(d > 0) {
      // moving towards
}

其中p_object是一个对象向另一个对象移动,findObject

但这可能不对。

使用点积。

bool isMovingTowards(vec2 testPoint, vec2 objectPosition, vec2 objectVelocty) {
    vec2 toPoint = testPoint - objectPosition; //a vector going from your obect to the point
    return dot(toPoint, objectVelocity) > 0;
}

我不确定你是否知道点积,但你的代码本质上是在执行数学来做到这一点。也就是说,你的代码几乎是正确的,它可能只是更清晰一点。