使用已知面构建多面体

时间:2016-07-31 09:36:03

标签: 3d polygon computational-geometry vertex polyhedra

这个过程的名称是什么:从已知的2D面(例如:三角形)构造一个多面体,它具有顶点的连接数据?

更简单地说,如果我拥有3D的所有部分,并且我知道哪些角应该连接到哪个,那么用于计算3D对象的过程是什么,之后它们都已连接?

此外,这项研究是否有常用的算法或良好的起点?

编辑:我想我正在谈论三角测量,但我不想生成多边形,我已经知道了。面需要以三维方式定位,以便它们适当连接。

2 个答案:

答案 0 :(得分:0)

有术语折叠展开,它们在计算几何中广泛用于讨论此类算法。

一个例子是here

答案 1 :(得分:0)

我不知道实现这一目标的经典方法,但我认为你可以这样做:

  • 选择起始面并假设它在XY平面中,原点有一个顶点,沿X轴有一个边缘。这足以固定多面体的绝对位置。

  • 找到另外两个共享此顶点的面并共享源自它的两条边。他们的支撑平面形成一个三面体,并且知道公共顶点处的三个角度,你可以找到第三个共同边缘的方向(这可能需要一些球形三角法或矢量几何,大概是)。

  • 这允许您从一个面(具有不同的顶点和区分边)到另一个面确定变换矩阵。

  • 您可以使用其他三元组重复此操作,每次确定转换矩阵。

  • 通过组合转换,您最终将所有本地坐标值转换为全局坐标值。

简而言之,你修复了其中一个面,然后通过拉动右边的弦来调整两个相邻的面,再调整一个,然后再调整一个,依此类推。每次你需要从其他面找到相应的顶点/边并解决"三面体问题",找到局部变换矩阵。

除非有很多面或坐标不准确,否则将重建整个几何体。在不准确的情况下,您可能必须使用初始重建来改进全局模型,例如通过边长的最小二乘拟合。但这是另一个故事。