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