向量数学 - 判断物体是朝向还是远离某个点
vector math - find if object is moving towards or away from a point
我不太擅长矢量数学,我最接近的是:
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;
}
我不确定您是否知道点积,但您的代码本质上是在执行数学运算。即,您的代码几乎是正确的,它可能更清晰一些。
我不太擅长矢量数学,我最接近的是:
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;
}
我不确定您是否知道点积,但您的代码本质上是在执行数学运算。即,您的代码几乎是正确的,它可能更清晰一些。