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 

所以,你不会得到的平方值的减法距离...