哪种数据结构可以处理2d线段

时间:2013-02-24 19:10:20

标签: c++ data-structures

我有大量的2d线段列表。我想为给定的段找到最近的线段,然后存储在向量中。因此,我想为每个线段执行此操作,以便我知道任何线段的最近线段。我的所有线段都是矢量形式,即我知道两个终点坐标。所以在我的数据行号中,begin(x,y,z),end(x,y,z)就在那里。

为了获得线段,我想检查线段和另一个线段(this)的终点之间的距离。

我认为可能存在所有这些事情发生的一些数据结构,并给出矢量线段数的向量或一些其他方式来识别接近线段。我知道kd-tree(k-nearest)可以做类似的事情。但这是针对点数据的。

我试图用opencv r-tree函数来解决这个问题。但由于我没有任何使用r-tree的经验,我无法使用,而且我现在感到困惑,因为它说的是关于分类器并且有训练阶段。但就我而言,我觉得我不希望这样的事情发生。

如果有人知道任何功能或代码或库来做这类事情,请告诉我。

1 个答案:

答案 0 :(得分:0)

虽然OpenCV没有线段的数据结构,但以下效果还不错。

struct LineSegment{
  Point2f a,b;
};