如何计算 3D 多边形的内角?
How to calculate the inner angles of a 3D polygon?
对于三角形网格中定义为孔的多边形,每个顶点定义为[x,y,z]坐标,如何计算每条边之间的内角?孔不是平面的,但可以有任意曲率。
边缘之间的最小角度可以用点积计算。但是,我想要区间 [0, 360] 度内的内角,因此需要知道内角是凸的还是凹的。如果它是凹的,我可以简单地将点积得到的角度加上180度。
也许有办法以某种方式使用周围三角形的法线?
如果您可以一致地定义沿边界的顶点顺序,则可以通过将线段绘制到角边并将中心顶点与该线段进行比较来确定边是凸的还是凹的:
如图所示,我定义了一个线段,连接由顶点 1、2 和 3 定义的角的边。只要您的顶点顺序一致,该角是基于凸角或凹角的关于角的中点(此处为顶点2)是否指向left or the right of the line segment.
对于三角形网格中定义为孔的多边形,每个顶点定义为[x,y,z]坐标,如何计算每条边之间的内角?孔不是平面的,但可以有任意曲率。
边缘之间的最小角度可以用点积计算。但是,我想要区间 [0, 360] 度内的内角,因此需要知道内角是凸的还是凹的。如果它是凹的,我可以简单地将点积得到的角度加上180度。
也许有办法以某种方式使用周围三角形的法线?
如果您可以一致地定义沿边界的顶点顺序,则可以通过将线段绘制到角边并将中心顶点与该线段进行比较来确定边是凸的还是凹的:
如图所示,我定义了一个线段,连接由顶点 1、2 和 3 定义的角的边。只要您的顶点顺序一致,该角是基于凸角或凹角的关于角的中点(此处为顶点2)是否指向left or the right of the line segment.