在计算机图形学领域,对多边形的处理是必不可少的。我们有时候会遇到需要判断多边形的顺逆时针的问题,这里可以有个方法以供参考:
对于三维中的多边形,现考虑一个顶点的情况:
假设P0点是多边形上的一个顶点,与其前一个顶点构成向量V0(x0,y0,z0)(方向是前一个顶点指向P0),与其后一个顶点构成向量V1(x1,y1,z1)(方向是P0指向后一个顶点)。
V0和V1向量构成下面的行列式
计算上面行列式的值,若为正,逆时针;为负则是顺时针。而对于一般的简单多边形,则需对于多边形的每一个点计算上述值,如果正值比较多,是逆时针;负值较多则为顺时针。
对于二维中的多边形,则
考虑一个顶点的情况:
假设P0点是多边形上的一个顶点,与其前一个顶点构成向量V0(x0,y0)(方向是前一个顶点指向P0),与其后一个顶点构成向量V1(x1,y1)(方向是P0指向后一个顶点)。
V0和V1向量构成下面的行列式
计算上面行列式的值,若为正,逆时针;为负则是顺时针。而对于一般的简单多边形,则需对于多边形的每一个点计算上述值,如果正值比较多,是逆时针;负值较多则为顺时针。
如需示例代码:
致QQ:1039116048