2010-06-18 117 views
4

对于我正在处理的2D游戏,我在基于矩形的简单碰撞检测中使用y轴排序。这工作正常,现在我想在给定的位置有效地找到最接近空矩形的。我怎样才能做到这一点?有算法吗?什么是找到距离某个位置最近的非碰撞矩形的有效方法

我可以想到一个简单的强力网格测试(每个网格都是我们正在寻找的空白空间的大小),但显然这是缓慢的,甚至不是一个完整的测试。

回答

0

如果您已经在使用轴排序,那么您可能已经计算出了按其位置排序的矩形列表。

也许我误解了,但是你能不能只看看问题矩形前后的两个矩形,并决定哪一个更接近?如果您正在讨论寻找距离任意点最近的矩形,那么您可以简单地遍历列表,直到找到第一个矩形的位置大于任意点的位置,然后使用该矩形和前一个矩形作为两个矩形比较。

+0

Y轴排序仅意味着每个矩形都按其y位置排序,所以之前/之后不一定意味着最接近。此外,我试图找到最适合特定尺寸的空白空间,而不是最接近的空白空间。 – Morrowless 2010-06-21 02:52:24