WINDING 和 ALTERNATE模式的区别【学习札记】

内容来自:http://blog.myspace.cn/e/400893301.htm和http://zhukai-coding.blog.sohu.com/88627236.html

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

什么是水平扫描

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

什么是奇数边和偶数边:

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

 

2.首先,假想线应为扫描线,即从左向右扫描

    ALTERNATE,字面意思“交替的”,也就是说,选用这种方式的情况下,为偶数数的封闭区域不填充,从图上很好理解。
WINDING,字面意思“缠绕的”,选用这种方式的情况下,为偶数数的封闭区域可能填充,也可能不填充,填充的原则是:绘制该区域的线段的方向为奇数时填充,偶数时不填充。从下图可以看出,区域5的四条边是一个流动方向,而区域4的四条边是两个流动方向。
 
  WINDING 和 ALTERNATE模式的区别【学习札记】_第1张图片

你可能感兴趣的:(WINDING 和 ALTERNATE模式的区别【学习札记】)