kdtree中边界框之间的最小距离

时间:2011-06-30 11:32:30

标签: java distance bounding-box

我需要找到欧几里德空间中同一棵树的两个kdtree边界框的最小距离。假设每个盒子保持5个元素。我需要使用java的最小欧几里德距离。

double QHRect[][] = QNode.m_NodesRectBounds;
double RHRect[][] = RNode.m_NodesRectBounds;

    QHRect[][]:    5.74842E-4,7.76626E-5,6.72655E-4, 
                   0.5002329025,0.2499048942,0.25046735625
    RHRect[][]:
                   0.75006193275,0.7495593574,0.75005675875, 
                   0.999890963,0.999386589,0.99985146

1 个答案:

答案 0 :(得分:0)

与此问题中的任何其他语言相比,Java实现没有什么棘手的问题。您需要知道一般算法来处理这样的问题。我相信是这样的:

  1. 枚举两个边界框(立方体)的所有12个顶点。
  2. 枚举两个边界框的所有12个面。
  3. 找出一个顶点与另一个顶点之间的欧几里德距离。这类似于点和平面之间的最短距离。
  4. 在这些2 * 6 * 6 = 72种组合中,选择最小的并得到答案。
  5. 在问题的一般版本中,您还必须检查两个边界框是否相交。