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

你不應該是檢查距離 njzk2

回答

1

可我只是減去距離半徑的平方得到的外接圓

是的,這應該是完全正常的邊緣的實際距離。

如果與敵人的距離是Δ,他的外接圓半徑爲[R,那麼他的外接圓的距離是Δ-[R

+0

有史以來最快的問題/回答?乾杯:)(顯然我必須等待12分鐘才能接受你的答案)。 –

+0

:-)不客氣。順便說一句,你能在你的觀點和敵人之間有一個障礙嗎?也就是說,你和你的敵人之間並沒有一個明確的視線,但它*是你的觀點和敵人邊界內的某個點之間的清晰視線。或者,你是否會簡單地忽略你和敵人之間沒有清晰視線的情況? – aioobe

+0

這個遊戲忽略了那些細節(因爲沒有障礙,所以現在不是什麼大問題)。有些事情要考慮未來的遊戲! –

0
DistanceToCenter - radius == DistanceToCircle 

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

所以,你不會得到的平方值的減法距離...