2D最近邻搜索移动点

时间:2011-08-07 06:55:41

标签: c++ data-structures 2d points nearest-neighbor

我想做一些植绒模拟,如here所述。

为此,我需要搜索每个2D点的最近邻居。但是,我不能使用像k-d树这样的静态数据结构,因为这些点总是在移动......

能够实现这一目标的好(简单)数据结构/库是什么?我正在使用C ++ ......

2 个答案:

答案 0 :(得分:3)

人们有studied这个问题。当找到这方面的工作时,重要的关键词是动能。

答案 1 :(得分:1)

也许您想尝试四叉树或空间索引? k-d树有什么问题?基本上当边缘有绒毛/点时,你可以跳过检查远处边缘的碰撞。空间索引可以是四叉树,r树,kd树或hilbert r树。可在此处阅读更好的答案:Approximate, incremental nearest-neighbour algorithm for moving bodies

“也就是说,递归地将”世界“划分为一个图形,每个图形包含四个子节点。然后树可以快速检查哪些对象位于世界的特定方格内并丢弃其余的。一种非常有效的剔除技术通常用于提高游戏中碰撞检测的性能。“