algorithm - 从一个点找到最近的圆

标签 algorithm math language-agnostic artificial-intelligence distance

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

谢谢!

最佳答案

Can I just subtract the radius squared from distance to get the actual distance to the edge of the bounding circle

是的,这应该没问题。

如果到敌人的距离是Δ,他的包围圈半径是r,那么到他的包围圈的距离就是Δ-r

关于algorithm - 从一个点找到最近的圆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7330673/

相关文章:

algorithm - 将递增整数范围映射到以 26 为基数的六位数最大值,但不可预测

php - 计算最重复元素的算法;

c# - 数学上限法

algorithm - 如何将十进制分数转换为十六进制分数?

file-io - 在单行逗号分隔文件中求和值

arrays - 如何在满足以下约束的 n 个元素的数组中分配随机值?

algorithm - 如何在内存较少的矩阵中找到连续区域?

algorithm - 以 θ(n) 复杂度对数组进行排序

c - 生成具有随机边的图

c++ - 寻找QT函数将qint64类型的变量(整数)四舍五入到最接近的十