我正在研究我的世界查询方法,以便从一个点找到最近的实体(用于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计算一个更精确的距离?
谢谢!
发布于 2011-09-07 16:09:19
我能不能只用距离的平方减去半径的平方,就可以得到到边界圆边的实际距离
是的,这应该很好。
如果到敌人的距离是Δ,并且他的边界圆半径是r,那么到他的边界圆的距离是Δ-r。
发布于 2011-09-07 17:33:21
DistanceToCenter - radius == DistanceToCircle但
DistanceToCenter^2 - radius^2 != DistanceToCircle^2所以你不会通过减去平方值来得到距离。
https://stackoverflow.com/questions/7330673
复制相似问题