我正在制作一个2D游戏,使用基于矩形的碰撞检测中的y轴排序。这很好用,现在我想高效地找到给定位置和大小的最近的空矩形。有什么算法可以做到这一点吗?
我能想到一个简单的暴力网格测试(每个网格都是我们要寻找的空间大小),但显然这很慢,也不是完整的测试。
我正在制作一个2D游戏,使用基于矩形的碰撞检测中的y轴排序。这很好用,现在我想高效地找到给定位置和大小的最近的空矩形。有什么算法可以做到这一点吗?
我能想到一个简单的暴力网格测试(每个网格都是我们要寻找的空间大小),但显然这很慢,也不是完整的测试。
如果您已经在使用轴排序,那么您可能已经计算出了按其位置排序的矩形列表。
也许我误解了,但是您不可以只看一下问题矩形前后的两个矩形,并决定哪一个更接近吗?如果您要找到离任意点最近的矩形,则可以简单地遍历列表,直到找到第一个位置大于您的任意点的矩形,并将其与前一个矩形一起用作进行比较的两个矩形。