3d 在模型中的节点形状中查找边或孔

3d 在模型中的节点形状中查找边或孔,3d,three.js,autodesk,autodesk-forge,autodesk-viewer,3d,Three.js,Autodesk,Autodesk Forge,Autodesk Viewer,有没有办法识别模型中的节点是否有孔 例如,我们想知道墙上是否有窗户或其他洞口,以及有多少这样的洞口及其位置 我试着在节点的多边形上迭代,取它们的质心和法线,并试图找到一个不连续点,但它并没有给出一个高置信度的结果 也试图计算边缘以外的直线,但有时在墙的中间出现一条直线。 那么还有别的方法吗?也许Three.js中有一个内置函数来计算网格的边数?可能有非常简单的方法来计算边数等等,但我担心它们不会有多大帮助,除非你有非常简单的几何体,并且没有例外情况 对于更一般的解决方案,我认为最好的办法是使用多

有没有办法识别模型中的节点是否有孔

例如,我们想知道墙上是否有窗户或其他洞口,以及有多少这样的洞口及其位置

我试着在节点的多边形上迭代,取它们的质心和法线,并试图找到一个不连续点,但它并没有给出一个高置信度的结果

也试图计算边缘以外的直线,但有时在墙的中间出现一条直线。


那么还有别的方法吗?也许Three.js中有一个内置函数来计算网格的边数?

可能有非常简单的方法来计算边数等等,但我担心它们不会有多大帮助,除非你有非常简单的几何体,并且没有例外情况

对于更一般的解决方案,我认为最好的办法是使用多边形的顶点、边、法线等,以及一些能够使用实体分析其拓扑的三维几何体库,从多边形生成实体模型

这是搜索“js 3d boolean”时出现的第一个

FinalMesh布尔三维库:

这一个说,它可以处理带有孔的多边形并对其进行优化,包括移除孔、移除额外点和从三角形生成多边形

给定多边形p,可以移除其孔以生成无孔多边形Q,然后从Q中减去p以获得p中的所有洞口


我确信还有很多其他的地方可以让你来评估和比较。

你应该检查一下这篇文章。您可以将模型转换为XML并访问所有BRep数据,如外部和内部的面循环。这将转换整个模型,但我想检测模型一小部分的边缘。。。而且它看起来像是必须与一些服务器一起完成的?我希望它在离线的浏览器中工作。谢谢,好主意,但是我不认为FialMealsJS库,只是一个离线软件,和C++库。你还推荐别的图书馆吗?哦,对不起,我没注意到。试着搜索你自己。此搜索字符串可能工作得更好:。例如,它查找。同时检查其他stackoverflow线程:-。