网格点算法(找到网格中的点)

时间:2013-06-02 19:32:54

标签: algorithm euclidean-distance

我正在搜索closest pair of points algorithm

等算法

而不是所有点之间的任意距离,我设置了一个网格系统,其中4个点分别是右上角,右下角,左上角和左下角。这使得所有点之间的距离保持不变。

例如,如果我要在这个网格上放置一个外部点,我需要找到它将在哪个网格方格,假设找到最接近的4个点(给我网格方块的终点)。 / p>

我打算为最近的点实现算法,但由于这些点彼此之间的距离都相同,所以我不知道这是否值得使用更高效的算法。

我真的不需要对答案进行详细解释,只是朝着正确的方向发展。

1 个答案:

答案 0 :(得分:1)

我认为这是2维吗?很简单,您可以这样做 - 我使用类似的技术在大规模数据挖掘项目中快速优化空间聚类。

将您的坐标空间划分为X和Y方向上的固定数量的网格线(您似乎已经完成了这一点,通过均匀地间隔这4个点)。

插入点时,将其距离(整数除法)除以X和Y方向的原点除以网格步长间隔。然后你留下两个坐标,标识最近的X / Y网格交叉点。使用余数来确定您的点所属的网格交叉点的哪一侧。

如果你想变得非常复杂,你可以开始使用kD-Trees等...但我认为这个例子很简单,不能保证更复杂的空间分区。