我正在编写我的世界查询方法,用于寻找距离某个点最近的实体(用于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 计算更精确的距离?
谢谢!
回答:
我可以简单地从距离的平方根中减去半径来获得到边界圆边缘的实际距离吗?
是的,这样做完全没问题。
如果到敌人的距离是 Δ,并且他的边界圆半径是 r,那么到他的边界圆的距离就是 Δ-r。