【问题标题】:Checking for all points within specified distance of all line segments检查所有线段指定距离内的所有点
【发布时间】:2012-09-10 15:04:38
【问题描述】:

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

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

在 C++ 中使用开放源代码实现的奖励积分。

【问题讨论】:

    标签: open-source computational-geometry


    【解决方案1】:

    在这些点上建立一个Voronoi diagram 网络。让每个单元保持指向其所有邻居的指针。一切皆有可能。

    1. 给定一个点,找到它所在的单元格。简单,从网络的左下角画一条线到该点,然后从那个角单元格开始,接近该点,从而找到它所在的单元格在。

    2. 给定一条线,找出它穿过的所有单元格。微不足道。

    3. 给定一条线和一个偏移距离,找到走廊内的所有单元格。从 2 开始。

    Voronoi 网络用作空间导航和查询的支持结构。所有的操作都是局部的,所以线性复杂。 之后图表构建完成。 :)

    【讨论】:

      猜你喜欢
      • 2021-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-10
      • 2015-04-05
      • 2011-08-20
      • 2021-09-07
      • 1970-01-01
      相关资源
      最近更新 更多