我从投影到2D平面的3D模型中得到了一堆重叠的三角形。我需要将触摸三角形的每个岛合并为一个封闭的非凸多边形。
结果多边形不应该有任何洞(因为源数据不是)。
许多源三角形与源数据中的其他三角形共享(浮点相同)边缘。
最简单的方法是什么?性能不是特别重要,因为这将在设计时完成。
答案 0 :(得分:2)
尝试gpc或General Polygon Clipper Library。
答案 1 :(得分:2)
想象一下投影到平面上作为模型的“视图”(即投影方向是视线,投影就是你所看到的)。在这种情况下,您要计算的多边形的边框对应于模型的轮廓。
反过来,轮廓是模型中的一组边。对于轮廓中的每个边缘,相邻面将具有法线,该法线指向远离平面或朝向平面。您可以通过平面法线检查面法线的点积 - 查找相邻面法线与投影方向具有相反符号的点积的边。
找到所有轮廓边后,您可以将它们连接到所需多边形的边界。
通常,您可以通过Google搜索mesh silouette finding detection
等字词找到有关剪影检测和提取的更多信息。也许一个好的开始是here。
答案 2 :(得分:1)
我也发现了这种[1]方法,接下来我会尝试。