3D中的最小边界框算法

问题描述

最小边界框(MBB)是围绕3D点云且体积最小的框。

Joseph O'Rourke发布了[2]三次时间算法,以查找3维点集的最小体积封闭框。奥罗克的方法使用了三维旋转卡尺技术。

我阅读了文章和Wiki(最小边界框算法)[1]。因为 非常复杂,我一无所获。此外,算法的执行步骤是我的下一个问题。

我想用Fortran编写O'Rourke的算法。

任何有关算法或流程图的提示,都会让我感到高兴。

解决方法

只是有关算法实质的提示。

首先,您需要计算点集的凸包,这是2D和3D的O(N Log N)过程。这样就得到了凸多边形(由顶点环描述)或多面体(称为平面图)。

下一步是组合操作,包括尝试所有可能最严格的位置。在2D中,最小边界框与一条边齐平,并且足以依次尝试所有边的方向(旋转多边形以使边变为水平,并构造AABB)。

3D情况更为复杂,它利用以下事实:最紧密的盒子在盒子的两个相邻面上与多面体的两个边齐平(盒子不一定与一个面齐平)。此属性允许通过尝试所有对边来生成有限数量的方向,并且如上所述,将边带入两个坐标平面并构造AABB。这需要一些球形三角学。