在我的应用中,我想把模型渲染成三维空间中的多边形曲面,并将边缘“向外”弯曲成一条实线,而那些将模型“向内”弯曲的则是虚线。所以,如果我从边缘的顶端看,如果他们“向我弯曲”,他们是向内弯曲的,如果他们向我弯曲,他们就向外弯曲。
为此,我需要计算两个连通三角形之间的角度。如何计算这个角度?我如何定义它是向外弯曲还是向内弯曲(从顶部看,如果角度>180,它总是向下弯曲,如果角度<180,则向内(所以向上),但如何计算呢?
发布于 2019-09-16 15:08:25
我建议计算每个多边形的法向量,并计算一个三角形的法向量和一个垂直于穿过公共边的平面的法向量之间的夹角。
参见下图,其中红色箭头是红色多边形的法线向量。蓝色矢量是垂直于左多边形的平面,通过两个多边形共有的边缘。

如果你的多边形是平面的,那么你可以通过计算交叉积AB x AC来计算任意多边形的法线。
若要获得蓝色向量,请取左多边形的法线与作为公共边的向量的交叉积。
你要寻找的角度是在这个蓝色矢量和另一个多边形的法线之间形成的(图中右边的红色矢量)。
然后计算两个矢量u和v之间夹角的余弦,取它们的点积,然后除以它们的大小。

从这里获取的图像。
https://computergraphics.stackexchange.com/questions/9154
复制相似问题