我正在解决这个问题,我不知道要使用哪种数据结构。
我在2D平面上有多个对象(凸多边形和圆形),对于给定的点,我必须计算点所在的对象(它们可以重叠)。
我一直在读K-D树,但我不知道如何为这种物体“弯曲”它。我也一直在阅读关于边界体积层次结构,但我不知道它是否是最佳的。
那么,您认为这个问题的最佳数据结构是什么?时间性能比内存使用更重要。)
谢谢!
答案 0 :(得分:0)
在大多数情况下,"效率" BVH,kd-tree,R-tree等空间划分方案来自智能树构造。只要你能很好地建造你的树,你就会有很快的表现。对于你的情况,我会说kd-tree很好 - 它很常见,有很多可用的源代码。 R树也是如此。我不明白你的意思"弯曲"它适合你的对象。对于Kd-Tree,您需要决定的是,给定一个轴对齐的平面 - 对于2D情况,如果圆(或多边形)位于一侧或跨越,则它将是x = c或y = c。相当琐碎的问题。