【问题标题】:Fastest way to search nearest and furthest rectangle in 2D space在二维空间中搜索最近和最远矩形的最快方法
【发布时间】:2020-05-22 16:23:00
【问题描述】:

假设现在在二维空间中,我们有一个矩形列表abc,如下图所示:

_______
|___a_|
         _______
         |     |
         |__b__|


  _______
  |___c_|

现在我想做的是对于每个矩形,我想找到最近的矩形和最远的矩形。例如,对于矩形 a,其最近的矩形是 b,而其最远的矩形是 c。当然,解决这个问题的一种蛮力方法是为每个矩形计算它到其余矩形的距离。我认为应该有解决这个问题的快速算法。例如,我可以将 2D 空间分成 10×10 个正方形,然后计算矩形在这个空间中的位置。当我计算最近的矩形时,我只搜索相邻正方形中的矩形。还有其他想法吗?谢谢。

编辑: 我承认如果我只对获取最近的矩形感兴趣,使用kd-tree 是一个很好的解决方案。但在这里,我也想知道最远的矩形。我不确定在这种情况下使用 k-d 树是否会有所帮助。

【问题讨论】:

标签: algorithm geometry computational-geometry


【解决方案1】:

提示:

已知此类邻近问题可以通过 Voronoi 图解决最近和最远邻居的问题。

已知这些图对于一组点在时间 O(n log(n)) 内是可构造的。对于最远多边形问题,已知 O(n log³(n)) 解。但是对于轴对齐的矩形,这个界限可以降低,我不会感到惊讶。

在任何情况下,没有什么是微不足道的。

【讨论】:

  • Voronoi 图指的是到点的距离,而不是到区域。我想,他们不能在这里申请,或者你有什么想法吗?
  • @ReinhardMänner:距离通常适用于集合,Voronoi 图也是如此。我提到了最远多边形问题的已知解决方案。你没有义务相信我。
  • @ReinhardMänner:您构建 Voronoi 图,为您提供每个项目的最近或最远邻居。
  • @ReinhardMänner:不幸的是,这些算法很艰巨。
猜你喜欢
  • 1970-01-01
  • 2018-04-13
  • 2018-03-21
  • 2019-01-27
  • 2011-10-21
  • 1970-01-01
  • 2017-03-15
  • 2020-05-21
  • 1970-01-01
相关资源
最近更新 更多