找到最近的XY坐标

时间:2011-03-21 22:49:29

标签: c++ qt visual-c++

我在2d图像中有一个点,例如给定图片中的红点和一组n点蓝点(x1,y1)......(xn,yn)我想找到最近的点(x0,y0)以比尝试所有点更好的方式。喜欢有最好的解决方案。如果您有共享任何类似的课程,我将不胜感激。

enter image description here

2 个答案:

答案 0 :(得分:1)

有很多种方法,最常见的可能是使用某种形式的空间分区来加速搜索,使其不是O(n)。有关详细信息,请参阅维基百科上的Nearest neighbor search

答案 1 :(得分:0)

我们建议的大多数解决方案都取决于更多的知识,我会说出来,除非你已经知道你的时间很短。即有成千上万的蓝点,或者你必须在短时间内完成数以千计的这些计算。 “Linear Search”会很好地为你服务。

不要费心计算实际距离,保存自己计算平方根并将其用作“距离”。

大多数其他方法使用更复杂的数据结构来根据几何排列对点进行排序。但要实施起来要困难得多。