空间多边形顺逆时针的判断

在计算机图形学领域,对多边形的处理是必不可少的。我们有时候会遇到需要判断多边形的顺逆时针的问题,这里可以有个方法以供参考:

对于三维中的多边形,现考虑一个顶点的情况:

假设P0点是多边形上的一个顶点,与其前一个顶点构成向量V0(x0,y0,z0)(方向是前一个顶点指向P0),与其后一个顶点构成向量V1(x1,y1,z1)(方向是P0指向后一个顶点)。

V0和V1向量构成下面的行列式

空间多边形顺逆时针的判断_第1张图片

计算上面行列式的值,若为正,逆时针;为负则是顺时针。而对于一般的简单多边形,则需对于多边形的每一个点计算上述值,如果正值比较多,是逆时针;负值较多则为顺时针。

对于二维中的多边形,则

考虑一个顶点的情况:

假设P0点是多边形上的一个顶点,与其前一个顶点构成向量V0(x0,y0)(方向是前一个顶点指向P0),与其后一个顶点构成向量V1(x1,y1)(方向是P0指向后一个顶点)。

V0和V1向量构成下面的行列式

空间多边形顺逆时针的判断_第2张图片

计算上面行列式的值,若为正,逆时针;为负则是顺时针。而对于一般的简单多边形,则需对于多边形的每一个点计算上述值,如果正值比较多,是逆时针;负值较多则为顺时针。


如需示例代码:

致QQ:1039116048





你可能感兴趣的:(图形算法,C++,3d,数学,图形)