小编典典

快速算法可找到与平面上给定点的x个最近点

algorithm

我想找到一种快速算法,以便找到平面上给定点的x个最接近点。

实际上,我们处理的点不是太多(在1,000到100,000之间),但是对于每个这些点,我需要x个最接近的点。(其中x通常在5到20之间。)

我需要用C#编写它。

有关用例的更多上下文:这些点是地图上的坐标。(我知道,这意味着我们并不是完全在谈论飞机,但是我希望避免处理投影问题。)在终点附近有许多其他点的地方应该用红色显示,而在其他地方没有太多的点靠近它们的点应显示为绿色。在这两个极端之间,这些点位于颜色渐变上。


阅读 316

收藏
2020-07-28

共1个答案

小编典典

您需要的是适合于组织平面中的点的数据结构。在这种情况下经常使用KD-
Tree。参见Wikipedia上的kd树

在这里,我找到了几何算法的一般描述


更新

我将KD树的Java实现移植到C#。请在RoboWiki上查看User:Ojd / KD-
Tree
。您可以在此处下载代码,也可以直接从我的主页下载
CySoft.Collections.zip
(仅下载,不提供文档)。

2020-07-28