如果已知多面体(可以是非凸的)的所有节点及其坐标,并按顺序给出面的点(逆时针或顺时针绕着外法线),如何获得每个面的外法向量?以下是一种计算凸多面体面法向量和卷绕方向的方法: 计算面法向量和卷绕方向 对于可能是非凸的一般多面体,该怎么办?
这里有一种方法。固定多面体 P 的一个面 F0 的方向。您还不知道它是否逆时针从外部开始,以使右手法则从叉积得出的法线指向外部。现在将相邻的面 F1 定向为与 F0 的方向兼容,即共享边缘在 F0 中定向为 →,在 F1 中定向为 ←。继续传播面的定向,直到每个面都与 F0 一致。因此,现在所有法线要么指向内部,要么指向外部。现在通过求和已签名四面体的体积来计算 P 的体积。如果所有面都按逆时针方向定向,则体积为正,如果所有面都按顺时针方向定向,则体积为负。如果结果为负数,请反转所有面的方向。计算已签名体积的方法已经在网络上广泛流传,包括这里:C语言中的计算几何。