如何计算3D多边形的内角?

问题描述

对于在三角形网格中定义为孔的多边形,每个顶点定义为[x,y,z]坐标,如何计算各边之间的内角?该孔不是平面的,但可以具有任意曲率。

可以使用点积计算出边缘之间的最小角度。但是,我想要内角在[0,360]度的范围内,因此需要知道内角是凸角还是凹角。如果它是凹的,我可以简单地将点积获得的角度增加180度。

也许有某种方式可以使用周围三角形的法线吗?

enter image description here

解决方法

如果您可以沿边界连续定义顶点的顺序,则可以通过在角度边缘绘制线段并将中心顶点与该线段进行比较来确定边缘是凸面还是凹面:

enter image description here

如图所示,我已经定义了一个段,该段连接由顶点1、2和3定义的角度的边缘。只要您的顶点顺序是一致的,则根据是否是角的中点(此处为顶点2)位于left or the right of the line segment

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...