试图修复3D网格法线



我有一个三角形集合来定义我的3D形状的网格表面,我想固定每个三角形的法线,使其指向外形。

我正在尝试以下(伪):


1。定义第一个三角形法线方向是右方向
2。使用DFS检查网格,像这样:
3。三角形=第一个三角形
4。求三角形中的每个邻居
5。如果邻居和三角形之间的夹角大于180,执行neighbor。flip()
6。三角形=邻居
7。如果邻居已经选择,那么继续下一个邻居
8。继续递归到4.

但是算法中的第5步不起作用,因为我不知道角度是否大于180,因为我需要知道在哪个方向(顺时针或逆时针)。

你能帮我理解如何修复算法吗?

不需要计算邻角。如果三角形ABC的取向是(A->B->C),如果边AB的邻居是三角形ABD,那么它在边AB上必须有相反的取向。这意味着,相邻的三角形必须是B->A->D

相关内容

  • 没有找到相关文章

最新更新