您的位置:首页 > 编程语言 > PHP开发

SetPolyFillMode(hdc,iMode)设置多边形填入模式

2010-04-29 22:59 477 查看
在使用SetPolyFillMode(hdc,iMode)选择多边形的填入模式时,iMode的值为ALTERNATE或着WINDING,其中ALTERNATE为系统内定模式。这两种模式填入的方式区别如下:

ALTERNATE模式:

在这种模式情况下,设想从一个无穷大区域的左边至右边的扫描线,扫描线经过所绘图形单数边界线时填充该区域,通过偶数的边界线时不填充。

WINDING模式:

在该模式下,和ALTERNATE模式下的方法一样,也是设想从一个无穷大区域的左边至右边的扫描线(下图中用虚线表示),通过单数边界线时填充该区域,但不同的是:通过偶数边界线时可能填充也可能不填充,是否填充的规则如下:如果绘制图形边界线的方向数为奇数时填充,为偶数时填充(下图中绘图方向不明,但可以判定**星中部的方向一定为奇数,所以在WINDING模式下填充了)如下图:



图:ALTERNATE模式(左)与WINDING模式(右)

再如下图:



4号区域的绘图方向为两个(偶数)方向,5号区域为一个(奇数)方向,故在ALTERNATE模式和WINDING模式下的填充效果如下:



在Charles Petzold《windows程序设计》中关于多边形填充的描述难以理解,在网上查了很多资料,说的也比较乱,综合起来,不知道这样理解对不对,请老师、同学...帮忙理解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: