如果多面体的所有节点(可能是非凸的)及其坐标已知,则按顺序给出面的点(逆时针或顺时针围绕外法线),我如何获得每个的外法线向量脸?
这是凸多面体的一种方法: 计算面法线和缠绕
一个可能是非凸的一般多面体怎么样?
如果多面体的所有节点(可能是非凸的)及其坐标已知,则按顺序给出面的点(逆时针或顺时针围绕外法线),我如何获得每个的外法线向量脸?
这是凸多面体的一种方法: 计算面法线和缠绕
一个可能是非凸的一般多面体怎么样?
这是一种方法。修复多面体P的一个面 F0 的方向。你还不知道这是否是从外部逆时针,所以右手定则给出了叉积的向外法线。
现在将相邻面 F1 定向为与 F0 的方向兼容,因为共享边在 F0 中的方向为 →,在 F1 中为 ←。继续传播面的方向,直到P的每个面都与 F0 一致。所以现在所有法线要么指向内,要么都指向外。
现在通过对有符号四面体体积求和来计算P的体积。如果所有面都是逆时针方向,则体积将为正,如果全部为顺时针方向,则体积为负。如果结果为负,则反转所有面部方向。
计算签名体积遍布整个网络,包括此处: C 中的计算几何。