我有一个程序可以接受网格和平面 并将3D网格投影到平面上。 但是,该程序仅在3D网格未“折叠”到给定平面的情况下才能正常运行。
这里的“折叠”是指3D网格上的至少两个3D面/边投影到目标平面上的两个相交或重叠的2D面/边。
例如在图片中,如果我输入以XY(水平)平面描绘的3D网格作为输入,则该程序运行良好。 但是,如果上面的3D网格具有XZ或YZ(两个垂直)平面,我想产生一个例外。 如何在给定投影平面的情况下通过算法检测3D网格是否“折叠”?
答案 0 :(得分:0)
如果表面法线始终沿某个方向定向,则如果没有“折叠”,则投影面将具有一致的法线方向。如果输入网格的方向正确,只需检查结果面法线都指向一个平面侧即可。如果不是这样,则首先通过选择一个起始面并扩展其方向来定向曲面。