详解:多边形填充方式(ALTERNATE和WINDING)的区别

信息来源:http://blog.myspace.cn/1305051695/archive/2008/04/24/400893301.aspx

1.在ALTERANATE模式下:从左到右水平扫描!~~系统只填充每个扫描行的多边行的奇数边到偶数边的部分,不填充偶数边到奇数边的部分;

什么是水平扫描

就是显示器上的从左到右一行一行的水平扫描,假如你客户区大小是500X600,那就是从(0,0)到(500,0)这是第一次水平扫描,.....一直到(0,600)到(500,600)。共扫描了600次就扫描完了客户

什么是奇数边和偶数边:

这里说的奇数和偶数边完全是相对而言的啊,只是我们便于理解的一种方法,
就是说在水平扫描一行时,第一次遇到对线就把它定义为第一条边(注意:同一条线的话在不同的扫描行上相对的边可能不是一样的,这点一定要注意思了).,第二次遇到的线就是第二条边,以此类推;
那么对于一个矩形( 就单单一个矩形),左是第一条边,右是第二条边,上下它就什么都不是了,不会存在第三条边和第四条边的.
奇数边到奇数边,偶数边到偶数边其它跟本不会出现这种情况的;

2.对于WINDING模式下:填充奇数边到偶数边和ALTERANATE模式一样,但填充偶数边到奇数边的部分就不同了,你必须记主画线的方向,你可以取一个方向为正向,用一个计数器cnt = 0,当线经过正向时cnt就加1,反向时cnt就减1,如果最后cnt为0就填充这个区域,不为0就不填充!

你可能感兴趣的:(详解:多边形填充方式(ALTERNATE和WINDING)的区别)