2015-01-27 3 views
1

에서 방향 또는 멀리 이동하면 찾을 수는 가장 가까운 내가이 온을했다 : p_object 객체가 다른쪽으로 이동벡터 수학 - 객체가 나는 벡터 수학 너무 좋은 아니에요 점

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 
} 

개체, findObject

하지만 이것은 아마도 적절하지 않습니다.

+0

당신은 코드가 이해가되지 않습니다 : 당신은'dir'을 사용하지 않지만 초기화되기 전에'd'를 사용합니다. –

+0

웃음, 잘못 복사했습니다. 죄송합니다. fixed –

+1

속도 벡터와 두 객체 사이의 벡터의 내적 값이 0보다 큰 경우, 일반적으로이 두 객체 사이로 이동한다는 의미입니다. 즉, 벡터 간의 각도가 0보다 큰 경우 내적은 양수입니다. 그러나, 나는 dir의 표시가 틀렸다라고 생각한다, 뺄셈을 거꾸로한다. –

답변

1

내적을 사용하십시오.

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; 
} 

내 제품을 알고 있지만 코드가 본질적으로 수학을 수행하고 있는지 확실하지 않습니다. 즉, 코드가 거의 정확합니다. 조금 더 명확해질 수 있습니다.