有没有办法识别模型中的节点是否有洞?
例如,我们想知道墙上是否有窗户或其他开口,以及有多少这样的开口及其位置。
我试图迭代节点的多边形,采用它们的质心和法线并试图找到不连续性,但它没有给出高置信度的结果。
还尝试计算边缘以外的直线,但有时在墙的中间会出现一条直线。
还有另一种方法吗?也许在Three.js中有一个内置函数来计算网格的边缘?
答案 0 :(得分:1)
可能有非常简单的方法来计算边缘等等,但我担心它们不会有太多帮助,除非你有非常简单的几何形状,并且没有例外情况。
对于更通用的解决方案,我认为您最好的选择是使用顶点,边缘,法线等从多边形生成实体模型,以及一些能够使用实体来分析它们的3D几何库。拓扑。
这是搜索“js 3d boolean”时出现的第一个
https://duckduckgo.com/?q=js+3d+boolean
FinalMesh布尔3D库:
http://finalmesh.com/boolean3d.htm
这个说它可以处理带孔的多边形并对它们进行优化,包括去除孔,去除多余点以及从三角形生成多边形。
给定一个多边形P,您可以移除其孔以生成无孔多边形Q,然后从Q中减去P以获得P中的所有开口。
我相信还有很多其他人可供您评估和比较。