我需要在两条或更多条三维轮廓线之间生成一个三角网格。轮廓线只是一个点阵列,并且始终是闭合的。
我已经尝试使用Poly2Tri库进行delaunay三角测量,但这不是很好,因为它只能在2d工作,而我可以让它在3d中工作,它不处理等高线垂直堆叠(即:丢弃第三维时具有相同的坐标)
有谁知道最好使用哪种算法,理想情况下我可以在c#应用程序中使用现有的库?
您可以继续使用2D Delaunay算法,但每次在两个相邻层(z1,z2)之间进行。 (z1 <z2)
假设轮廓线被采样并在z平面上以逆时针顺序存储为一组(x,y,z)。您需要为三角测量构造一组边界/孔点:
对(z2,z3)层再次进行三角测量,依此类推。请注意,z2处的孔/边界点保持不变,但如果发生重叠,而不是向内移动,它现在向外移动。最后,将所有三角形组合成一个网格。