Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我目前想知道是否有一种通用算法来检查一组平面多边形,而不是三角形,是否构成一个防水多面体。每个多边形都有一个方向(法线向量)。一个简单的解决方案就是说是或否。更高级的版本是指出多面体“开放”的边缘。我对如何接近多面体并不感兴趣。
我想指出,我的“洞”不一定小,例如,立方体的一个面可能会丢失。因此,“欠采样校正”算法似乎不是正确的方法。此外,我说的是大约 100 - 1000 个,而不是 1000000 个多边形,因此计算时间应该不是问题。
任何提示或提示?
亲切的问候,策展人
我相信你可以使用一个简单的拓扑测试——计算每条边出现在完整的多边形列表中的次数。
如果这组多边形定义了一个封闭体积的表面,则每条边都应该有count>=2,表示每条边由(至少)两个相邻的多边形共享。如果表面是流形count==2的。
count>=2
count==2
带有count==1表示曲面的开放区域的边。
count==1
上面的答案并不涵盖很多情况。一个更正确(但不一定完整:我不知道)的算法是确保每个多边形(或网格/多面体)的每条边都有偶数个与之相连的面。考虑以下网格:
最近的顶点和下面的顶点之间的线段(线)连接到 3 个面(外三角形的一个和内三角形的两个),这大于两个面。然而,这显然没有关闭。