0

我有一个很大的多边形网格,通常是三角形,但有时是矩形。我的网格中的每个点都有一个值(值与坐标无关)。

现在我在与旧网格相同的坐标空间中创建第二个网格。我现在想使用旧网格中的值插入新网格中所有点(顶点)的值。

现在我可以循环新网格中的每个多边形,并通过进行 2d 碰撞检测来检测每个多边形中的哪些旧顶点(即使这样我也无法正常工作,所以如果有人有简单快速的 2d 碰撞检测代码(三角形就足够了)我很乐意看到它)。

然而,我的主要观点再次。为每个新多边形循环每个旧顶点似乎效率不高。有没有更好的办法?

4

1 回答 1

1

在没有进一步了解您的问题的启发式的情况下,我建议的可能解决方案如下:我将确定整个风景的矩形边界,然后将该区域分成相等的矩形分区,例如 100x100。对于每个分区,您可以在此分区中保留一个带有顶点的旧多边形列表(一种“散列”旧多边形)。然后迭代每个新多边形,确定它可能接触到的分区(只需使用多边形边界矩形的顶点和其间的所有分区就可以了)并查找预先构建的列表以找到相应的旧顶点,这些顶点是候选的精确的碰撞检测。

这将减少耗时的精确碰撞检测计算,但肯定会增加内存消耗。因此,根据您的确切问题,这可能是一个很好的解决方案,也可能是不切实际的。

于 2012-11-10T14:15:51.047 回答