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

发布于 2024-11-17 21:37:53 字数 439 浏览 5 评论 0原文

我需要找到欧几里德空间中同一棵树的两个 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

I need to find the minimum distance b/w two kdtree bounding box's of same tree in euclidean space. Suppose each box maintain a 5 elements. I need the minimum Euclidean distance using 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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

只想待在家 2024-11-24 21:37:53

在这方面,与任何其他语言相比,Java 实现没有什么棘手的地方。您需要了解处理此类问题的通用算法。我相信是这样的:

  1. 枚举两个边界框(立方体)的所有 12 个顶点。
  2. 枚举两个边界框的所有 12 个面。
  3. 求一个顶点与另一个顶点之间的欧几里得距离。这类似于点和平面之间的最短距离。
  4. 在这 2*6*6=72 个组合中,选择最小的一个,你就会得到答案。

在问题的一般版本中,您还必须检查两个边界框是否也相交。

There is nothing tricky about a Java implementation compared with any other language in this matter. You need to know the general algorithm to handle a problem like this. I believe it is this:

  1. Enumerate all 12 vertices of the two bounding boxes (cubes).
  2. Enumerate all 12 faces of the two bounding boxes.
  3. Find the Euclidean distance between each vertex of one and face of the other. This is similar to the shortest distance between a point and a plane.
  4. Of these 2*6*6=72 combinations, pick the smallest and you have your answer.

In the general version of the problem, you would also have to check for if the two bounding boxes intersect as well.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文