两套中最接近的一对,每套一对

djc*_*476 5 c# geometry

我有两组点,A和B,并且我试图找到最接近的一对点,其中每组都取一个点。就是说,如果您要使用两点画线的点,那么我希望这两个点能画出两条线之间最短的线段。

环顾四周,几乎所有事情似乎都涉及在1个集合中找到最接近的点。尽管我确实找到了一个建议开始进行voronoi镶嵌的解决方案,这似乎有点过头了,但我只是在寻找比O(n ^ 2)更好的东西。

如果有帮助,我将比较这两种形式的表格行,尽管它们不一定是直的,我正在用C#编写。

谢谢。

小智 2

通过一起处理所有点并用额外的位标记它们,应该可以适应经典的 D&C 算法(如维基百科链接中所述)。

合并步骤需要修改为仅接受候选左右对以及来自每个集合的成员。这样,递归函数将返回最接近的 AB 对。应保留 O(N.Log(N)) 行为。

如果您提到的“线”有一个已知的方程,以便可以快速评估点/线距离(甚至线/线交点),那么可能会有更快的解决方案。