Нахождение ближайшего круга от точки - PullRequest
1 голос
/ 07 сентября 2011

Я работаю над своими мировыми методами запросов, чтобы найти ближайшую сущность из точки (для нацеливания 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?

Спасибо!

Ответы [ 2 ]

1 голос
/ 07 сентября 2011

Могу ли я просто вычесть квадрат радиуса из расстояния, чтобы получить фактическое расстояние до края ограничивающей окружности

Да,это должно быть прекрасно.

Если расстояние до противника равно Δ, а радиус его ограничительного круга равен r , то расстояние до его ограничительного круга равно Δ- r .

0 голосов
/ 07 сентября 2011
DistanceToCenter - radius == DistanceToCircle

но

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

Таким образом, вы не получите расстояние путем вычитания квадратов значений ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...