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

Which data structure can handle 2d line segments

本文关键字:处理 2d 线段 数据结构      更新时间:2023-10-16

我有一个庞大的二维线段列表。我想为给定的线段找到最近的线段,然后存储在向量中。所以,我想对每一个线段都这样做,这样我就知道任何线段的最近线段。我所有的线段都是矢量形式,也就是说,我知道两个端点的坐标。所以在我的数据行号中,begin(x,y,z),end(x,y,z)在那里。

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

我认为可能有一些数据结构,所有这些事情都发生了,并给出了矢量线段编号的矢量,或者其他识别接近线段的方法。我知道kd-tree(k-最近)也可以做类似的事情。但它适用于点数据。

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

如果有人知道任何函数、代码或库可以做这类事情,请告诉我。

虽然OpenCV没有线段的数据结构,但以下方法足够好。

struct LineSegment{
  Point2f a,b;
};