检查所有线段的指定距离内的所有点

时间:2012-09-18 10:49:45

标签: open-source computational-geometry

给定一组点P和一组段S,有没有办法有效地找到任何段的指定距离d内的所有点?没有蛮力比较订单O(|P||S|)

Bentley-Ottman搜索一组线段之间的所有交叉点都在O(n log n)中运行,因为这个问题有类似的味道,我想知道是否有类似的性能。

C ++中允许的开源实现的加分点。

1 个答案:

答案 0 :(得分:0)

在积分上建立Voronoi diagram网络。让每个单元格保持指向其所有邻居的指针。比任何事都有可能。

  1. 给出一个点,找到它所在的单元格。简单,从网络的左下角到该点绘制一条线,并从该角落单元开始,接近该点,从而找到它所在的单元格英寸

  2. 给定一条线,找到它穿过的所有细胞。微不足道的。

  3. 给定直线和偏移距离,找到走廊内的所有单元格。来自2。

  4. Voronoi网络用作空间导航和查询的支持结构。所有操作都是本地的,因此线性复杂。 之后构建图表。 :)