3d 什么';计算三维网格边界框对角线长度的简单方法是什么?

3d 什么';计算三维网格边界框对角线长度的简单方法是什么?,3d,geometry,mesh,3d,Geometry,Mesh,我想计算三维网格边界框的对角线长度。使用C++,我迭代顶点并搜索y坐标的(x,max)(min,max)和z坐标的(min,max)。但是,我不知道如何利用这些获得的最小/最大值来计算边界框的对角线长度。 有什么帮助吗? < P>为简单起见,让我们考虑一个列表: N< /代码> 3D点(点云)作为输入(而不是网格),这对于多边形网格是足够的。 网格的“对角线”正好是网格中两个最远点之间的直线。这很容易通过简单的O(n^2)bruteforce搜索(2个嵌套的循环用于记忆最远的点)来计算。还有一些

我想计算三维网格边界框的对角线长度。使用C++,我迭代顶点并搜索y坐标的(x,max)(min,max)和z坐标的(min,max)。但是,我不知道如何利用这些获得的最小/最大值来计算边界框的对角线长度。
有什么帮助吗?

< P>为简单起见,让我们考虑一个列表:<代码> N< /代码> 3D点(点云)作为输入(而不是网格),这对于多边形网格是足够的。 网格的“对角线”正好是网格中两个最远点之间的直线。这很容易通过简单的
O(n^2)
bruteforce搜索(2个嵌套的循环用于记忆最远的点)来计算。还有一些更快的方法可以利用点的顺序。这里是暴力的例子:

line pointcloud::diagonal()
{
int i,j;
线l,ll;
l=行(vec3(0.0,0.0,0.0),vec3(0.0,0.0,0.0));//空行

对于(i=0;i@MBo你的意思是我应该考虑所有3D点之间的最大欧几里得距离?length@MBo,是的,两个相对角之间的距离E是对角线长度,但是我不明白如何定义目标3D的8个角mesh@spektre,你能提供一份哪本教程解释了三维模型的OBB?顺便说一句,我通过使用缩放的方形映射和立方体映射进行递归,成功地为OBB(二维和三维)创建了递归精度提升(当前代码的变化非常小,包括方形/立方体映射和OBB)正方形/立方体的每个面将不再覆盖
90deg
,而是
90deg/zoom
,因此不需要分配更多内存,在精度提高的每次迭代中可以使用相同的变量,并且只使用接近最后找到的方向,而不是整个空间的全部覆盖。然而,新代码太低了ng to post,因为它包含大量2D和3D的内容。我还规范了代码,因此2D类似于3D,所有内容都可以轻松移植到4D或更高维度,因为算法相同。2D/3D几何内容约为64KB,向量/矩阵数学约为243KB。
d = dot( p-p0 , dir )