我想做一些植绒模拟,如here所述。
为此,我需要搜索每个2D点的最近邻居。但是,我不能使用像k-d树这样的静态数据结构,因为这些点总是在移动......
能够实现这一目标的好(简单)数据结构/库是什么?我正在使用C ++ ......
答案 0 :(得分:3)
人们有studied这个问题。当找到这方面的工作时,重要的关键词是动能。
答案 1 :(得分:1)
也许您想尝试四叉树或空间索引? k-d树有什么问题?基本上当边缘有绒毛/点时,你可以跳过检查远处边缘的碰撞。空间索引可以是四叉树,r树,kd树或hilbert r树。可在此处阅读更好的答案:Approximate, incremental nearest-neighbour algorithm for moving bodies
“也就是说,递归地将”世界“划分为一个图形,每个图形包含四个子节点。然后树可以快速检查哪些对象位于世界的特定方格内并丢弃其余的。一种非常有效的剔除技术通常用于提高游戏中碰撞检测的性能。“