从一个点找到最接近的圆

我正在研究我的世界查询方法,以查找距离某个点最近的实体(用于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。


DistanceToCenter - radius == DistanceToCircle

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

所以你不会通过减去平方值得到距离......

链接地址: http://www.djcxy.com/p/84933.html

上一篇: Finding closest circle from a point

下一篇: Xyz coordinate from distance