Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 三维空间中的最小包围盒算法_Algorithm_Fortran_Computational Geometry_Bounding Box - Fatal编程技术网

Algorithm 三维空间中的最小包围盒算法

Algorithm 三维空间中的最小包围盒算法,algorithm,fortran,computational-geometry,bounding-box,Algorithm,Fortran,Computational Geometry,Bounding Box,最小边界框(MBB)是体积最小的三维点云周围的框 Joseph O'Rourke发表了一个立方时间算法,用于寻找三维点集的最小体积包围盒。O'Rourke的方法使用了三维旋转卡钳技术 我读了这篇文章和wiki(最小包围盒算法)[]。由于 非常复杂,我一无所获。此外,算法的执行步骤是我的下一个问题 我想用Fortran编写O'Rourke的算法 任何关于算法或流程图等的提示都让我很高兴。只是关于算法精神的一点提示。 首先,您需要计算点集的凸包,在2和3维中是一个O(N logn)过程。这将生成一个

最小边界框(MBB)是体积最小的三维点云周围的框

Joseph O'Rourke发表了一个立方时间算法,用于寻找三维点集的最小体积包围盒。O'Rourke的方法使用了三维旋转卡钳技术

我读了这篇文章和wiki(最小包围盒算法)[]。由于 非常复杂,我一无所获。此外,算法的执行步骤是我的下一个问题

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


任何关于算法或流程图等的提示都让我很高兴。

只是关于算法精神的一点提示。

首先,您需要计算点集的凸包,在2和3维中是一个O(N logn)过程。这将生成一个凸多边形(由顶点环描述)或多面体(由平面图描述)

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


3D案例更为复杂,它使用了一个事实,即最紧的长方体在长方体的两个相邻面上与多面体的两条边齐平(长方体不一定与面齐平)。此属性允许通过尝试所有对边来生成有限数量的方向,如上所述,将边置于两个坐标平面中并构造AABB。这需要一点球面三角。

您可以找到您的algorithm@MaximeB. 我也看到了。由于缺少好的注释和数字变量,我不能太多地理解它。无论如何,实现是不可能的。