【发布时间】:2013-02-09 22:02:15
【问题描述】:
我有大量的二维线段。我想为给定的线段找到最近的线段,然后存储在向量中。所以,我想对每个线段执行此操作,以便我知道任何线段的最近线段。我所有的线段都是矢量形式,也就是说,我知道两个端点坐标。所以在我的数据行号中,begin (x,y,z), end(x,y,z) 都在那里。
为了获取线段,我想检查线段与另一条线段的端点之间的距离(this)。
我认为可能有一些数据结构会发生所有这些事情,并给出向量线段编号的向量或其他方式来识别邻近线段。我知道 kd-tree (k-nearest) 可以做类似的事情。但它是针对点数据的。
我试图用 opencv r-tree 函数来解决这个问题。但是由于我没有任何使用 r-tree 的经验,所以我无法使用,现在我很困惑,因为它说的是分类器并且有一个训练阶段。但就我而言,我觉得我不希望这样的事情发生。
如果有人知道任何函数或代码或库来做这类事情,请告诉我。
【问题讨论】:
-
“巨大”有多大?您必须使用哪种系统来解决问题? [如果是手机或每系统 64GB 和 16 核的 1000 机集群可能会有所不同]
-
@Mats Petersson:在我的数据中,有近 40,000 个线段与我有关。它的 1gb 内存和 1.4 ghz 双核机器。
-
您是否有时间限制(例如,需要每 1/50 秒或类似时间执行一次)?
-
@Mats Petersson:没那么多。但我希望做这个数据结构,因为在做代码时处理数据可能会容易得多,因为我知道 sepeteate 接近线段。列表
标签: c++ data-structures