1

나는 포인트 (AI 타겟팅)에서 가장 가까운 엔티티를 찾는 세계 쿼리 방법을 연구하고 있습니다. 내 개체는 경계 서클로 덮여 있습니다.포인트에서 가장 가까운 원 찾기

var distanceX : Number = boundingCircle.position.x - startPosition.x; 
var distanceY : Number = boundingCircle.position.y - startPosition.y; 

var distance : Number = (distanceX * distanceX + distanceY * distanceY); 

if (distance < lastDistance) 
{ 
    // set this circle as the closest... 
} 

그것은 비록 계정에 경계 원의 반경을 고려하지 않습니다 그것은 나에게 부정확 한 결과를주고 :

나는이 있습니다. 바운더리 원의 가장자리까지의 거리를 얻기 위해 거리에서 제곱 한 반경을 빼거나 Math.sqrt와 더 정확한 거리를 계산해야합니까?

감사합니다.

+0

당신은 그 거리 <^ 2 boundingCircle.radius을 확인하지 하는가? – njzk2

답변

1

난 그냥

예,이 완벽하게 잘되어야 경계 원의 가장자리에 실제 거리를 얻기 위해 거리에서 제곱 반경을 뺄 수 있습니다. 원수의 거리 Δ이며, 그 경계 원 반경 R 경우

, 그의 경계 원까지의 거리가 Δ- R이다.

+0

가장 빠른 질문/답변? 환호 :) (분명히 나는 ​​당신의 대답을 수락하기 전에 12 분을 기다려야한다). –

+0

:-) 오신 것을 환영합니다. Btw, 당신은 당신의 포인트와 적의 포인트 사이에 장애물을 가질 수 있습니까? 즉, 당신과 당신의 적 사이에는 명확한 경계선이 없지만, 당신의 지점과 적 경계의 어떤 지점 사이의 명확한 경계선은 무엇입니까? 아니면 당신과 적 사이에 명확한 경계선이없는 경우를 무시하겠습니까? – aioobe

+0

이 게임은 장애물이 없기 때문에 세부 정보를 무시하므로 지금 큰 문제는 아닙니다. 미래의 게임을 위해 고려해야 할 것! –

0
DistanceToCenter - radius == DistanceToCircle 

하지만

DistanceToCenter^2 - radius^2 != DistanceToCircle^2 

그래서 당신은 제곱 값의 뺄셈에 의해 거리를받지 않습니다 ...

관련 문제