如果你看一下k-d trees的维基百科条目,你会看到这个illustration点和平面将2D空间划分为矩形。
我的问题是如何获得最终的矩形集?我认为叶子节点的每个'路径'可能会给我一定的界限。对于任意深度的N点,有一般的方法吗?
请注意,我不要求的是超高度结构的kd树,其中给定的输入是一组矩形,然后可以查询范围搜索等。我的输入是一组随机点,我想要输出完全“细分”或细分笛卡尔空间的矩形集。
答案 0 :(得分:0)
感谢eh9进行编辑。只是为了澄清输入是从一组随机点构造的k-d树,输出是结果矩形的集合。
感谢Jerdak的'琐碎'解决方案: 实际上,只需从根节点开始沿着树行走,并在每个轴深处保持分裂矩形。唯一的另一条信息是原始矩形的外边界。访问完所有节点后,您可以返回完整的集合。
答案 1 :(得分:0)
许多kD-Trees实际上存储了每个子树/叶子的边界超线,因此可以在KNN搜索中进行更好的修剪。请注意,这些不是覆盖所有空间的矩形,而是在没有任何点的叶子之间留下间隙。我个人觉得它们比较凉爽; - )