我正在研究我的世界查询方法,以便从一个点找到最接近的实体(用于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 :(得分:1)
我可以直接从距离中减去半径以获得到边界圆边缘的实际距离
是的,这应该是完全没问题的。
如果到敌人的距离是Δ,并且他的边界圆半径是 r ,那么到他的边界圆的距离是Δ- r 。
答案 1 :(得分:0)
DistanceToCenter - radius == DistanceToCircle
但
DistanceToCenter^2 - radius^2 != DistanceToCircle^2
所以你不会通过减去平方值得到距离......