如何从描述它的曲线中获取网格?

时间:2018-03-12 13:24:43

标签: python 3d mesh triangulation cad

我有描述石头的曲线(比如说2到10条曲线)。它们作为简单的三维{normal in (x,y,z); point (x,y,z); normal out(x,y,z)}曲线点给出,存储在矢量中(每点9个浮点数,每条曲线至少2个点)。它们都已关闭,因此Curves[i][0] == Curves[i][last]和所有曲线都以空间S中的单个已知点为中心。如何将这些曲线转换为poligon网格?

1 个答案:

答案 0 :(得分:1)

首先,您需要一些方法来插入1D中的单个值。假设你有一些't'参数,范围从0到1.在这个范围内你有一些数据点,它们可能是有规律的间隔。问题是:对于您的给定数据点和任何't'值计算此't'的函数。

当你有这个工作时,你可能会更进一步。根据你的描述,我假设你有几个围绕物体的形状。它看起来像地球的经度线。如果这是正确的那么他们所有人都应该加入两点。你可以从每个彼此接近的形状中寻找点 - 这将是你形状的“开始”。

当你有每个形状的起点时,你可以得到第二个或第三个点并从中心计算它的角度,从顶部看。通过这种方式,您可以找到形状围绕对象的顺序。

如果你的所有形状都具有相同的点数,并且如果它们均匀分布,那么构建网格基本上是添加角落的四边形:

shape[i].point[j]
shape[i].point[j+1]
shape[i+1].point[j]
shape[i+1].point[j+1]

如果你的形状更复杂,或者它们可以相互交叉,或者它们可以有不同的点数,那么这个逻辑会变得复杂,但我们没有更多的信息。