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

Python 如何从描述网格的曲线中获取网格?,python,3d,mesh,triangulation,cad,Python,3d,Mesh,Triangulation,Cad,我有描述石头的曲线(比如2到10条曲线)。它们以简单的3d{normal in(x,y,z);point(x,y,z);normal out(x,y,z)}曲线点的形式给出,这些点存储在向量中(每个点9个浮点,每条曲线至少2个点)。它们都是闭合的,因此曲线[i][0]==曲线[i][last]和所有曲线都以空间S中的一个已知点为中心。如何将这些曲线转化为多边形网格?首先,您需要某种方法在1D中插值单个值。假设您有一些从0到1的“t”参数。在这个范围内,您有一些数据点,它们可能以固定的间隔存在,也

我有描述石头的曲线(比如2到10条曲线)。它们以简单的3d
{normal in(x,y,z);point(x,y,z);normal out(x,y,z)}
曲线点的形式给出,这些点存储在向量中(每个点9个浮点,每条曲线至少2个点)。它们都是闭合的,因此
曲线[i][0]==曲线[i][last]
和所有曲线都以空间
S
中的一个已知点为中心。如何将这些曲线转化为多边形网格?

首先,您需要某种方法在1D中插值单个值。假设您有一些从0到1的“t”参数。在这个范围内,您有一些数据点,它们可能以固定的间隔存在,也可能不存在。问题是:对于给定的数据点和任何“t”值,计算此“t”的函数

当你有了这个工作,你可以走得更远。根据您的描述,我假设您有几个围绕对象的形状。它看起来像是地球的经线。如果这是正确的,那么他们所有人都应该加入两点。您可以从每个形状中查找彼此靠近的点,这将是您形状的“起点”

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

如果所有形状的点数相同,且分布均匀,则构建网格基本上就是添加带角的四边形,如:

shape[i].point[j]
shape[i].point[j+1]
shape[i+1].point[j]
shape[i+1].point[j+1]
如果你的形状更复杂,或者它们可以相互交叉,或者它们可以有不同数量的点,那么这个逻辑会更复杂,但是我们没有更多的信息