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