3d 构建具有已知面的多面体

3d 构建具有已知面的多面体,3d,polygon,computational-geometry,vertex,polyhedra,3d,Polygon,Computational Geometry,Vertex,Polyhedra,此过程的名称是什么:从已知的2D面(例如三角形)构造多面体,这些面具有顶点的连接数据 更简单地说,如果我有一个3D的所有部分,并且我知道哪个角应该连接到哪个角,那么计算3D对象的过程是什么,然后它们都连接起来了 此外,这项研究是否有一个常用的算法或良好的起点 编辑:我想我说的是三角剖分,但我不想生成多边形,我已经知道了。面需要在三维中定位,以便它们适当地连接。有折叠和展开这两个术语,在计算几何中广泛用于讨论这类算法 一个例子是 我不知道实现这一点的经典方法,但我认为你可以这样解决: 选择一个起

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

更简单地说,如果我有一个3D的所有部分,并且我知道哪个角应该连接到哪个角,那么计算3D对象的过程是什么,然后它们都连接起来了

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

编辑:我想我说的是三角剖分,但我不想生成多边形,我已经知道了。面需要在三维中定位,以便它们适当地连接。

有折叠和展开这两个术语,在计算几何中广泛用于讨论这类算法


一个例子是

我不知道实现这一点的经典方法,但我认为你可以这样解决:

  • 选择一个起始面,并假定它位于XY平面中,一个顶点位于原点,一条边沿X轴从其开始。这足以确定多面体的绝对位置

  • 查找共享此顶点的其他两个面,并共享源自此顶点的两条边。它们的支撑平面形成一个三面体,知道公共顶点的三个角度,就可以找到第三条公共边的方向(这大概需要一点球面三角或向量几何)

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

  • 可以对其他三个面重复此操作,每次确定变换矩阵

  • 通过组合变换,最终将所有局部坐标值转换为全局坐标值

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


除非有许多面或坐标不准确,否则将重建整个几何体。如果不准确,您可能必须改进全局模型,例如使用初始重建对边长度进行最小二乘拟合。但这是另一个故事。

你的意思是你知道所有面孔的形状,但不知道它们之间的关系吗?就像纸模型被拆开一样;我有所有的面和信息来连接他们的点,当他们是一个三维形状,正确组装,但我没有他们的位置或旋转的三维形状。想象3D形状的面被展平在一张纸上,并用绳子连接所有接触的角。当绳子被拉紧时会发生什么?假设面回到了它们原来的位置以及连接。现在更清楚了。