我有一个三维表面多边形网格,我手动定义了一个封闭的轮廓,类似于这个
(封闭的轮廓是绿色曲线)。
我想仅标记此轮廓内的点,但是,正如您所看到的那样,黄色表面包含孔和“凸起”,这使得这种标记变得困难。我所决定的是,我想标记仅那些位于“外”表面的点,即不进入孔内或凸起下方(最后只是另一种类型的孔) )。
此时我只想出问题而不是想法:
一旦解决了内部/外部的问题:
感谢您的任何建议!
答案 0 :(得分:0)
可以通过从区域(内部轮廓)中的点开始并迭代地将区域扩展到连接到已找到的点的点来完成,并且如果连接穿过轮廓或具有某些几何属性则停止。几何测试可以是:
答案 1 :(得分:0)
我终于找到了解决方案:
确定点是在轮廓内/外:
仅取“外”表面上的点:我取平均轮廓法线,然后将其与已标记为轮廓内部的每个点的法线进行比较(上一步)。如果angle(normal_vertex,normal_contour)>阈值(在我的情况下为60º)然后我将顶点标记为轮廓外。
此时算法按预期工作。 谢谢, 米格尔