找到移动球体中包含的所有点的集合

时间:2017-11-02 15:48:05

标签: computational-geometry r-tree

我在三维空间中有数千个稀疏点的有限集P和一个固定半径的移动球S。对于每一个给定的时刻t,我知道S_t,即球体占据的空间体积。我事先不知道S接下来会向哪个方向移动。如何找到Q_t中包含的所有点的子集S_t

我想这样做:

  1. 将所有点放在R树中并计算Q_0
  2. 每t> 0,计算相对补数

    N_t = S_t \ S_(t-1)M_t = S_(t-1) \ S_t

  3. 然后,我在R树中查询相对补充中包含的所有点,P(N_t)P(M_t)
  4. 最后,我将结果更新为:

    Q_t = Q_(t-1) + P(N_t) - P(M_t)

  5. 这有用吗?有更有效的计算方法吗?

    此外,是否有任何库可以让我有效地解决这个问题?

1 个答案:

答案 0 :(得分:0)

我会将这些点存储在kD树(k = 3)中并执行固定半径近邻搜索。

我不确定尝试利用小增量并使用前一个位置解决一个位置的策略真的会付出代价。