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程序设计》中关于多边形填充的描述难以理解,在网上查了很多资料,说的也比较乱,综合起来,不知道这样理解对不对,请老师、同学...帮忙理解
ALTERNATE模式:
在这种模式情况下,设想从一个无穷大区域的左边至右边的扫描线,扫描线经过所绘图形单数边界线时填充该区域,通过偶数的边界线时不填充。
WINDING模式:
在该模式下,和ALTERNATE模式下的方法一样,也是设想从一个无穷大区域的左边至右边的扫描线(下图中用虚线表示),通过单数边界线时填充该区域,但不同的是:通过偶数边界线时可能填充也可能不填充,是否填充的规则如下:如果绘制图形边界线的方向数为奇数时填充,为偶数时填充(下图中绘图方向不明,但可以判定**星中部的方向一定为奇数,所以在WINDING模式下填充了)如下图:
图:ALTERNATE模式(左)与WINDING模式(右)
再如下图:
4号区域的绘图方向为两个(偶数)方向,5号区域为一个(奇数)方向,故在ALTERNATE模式和WINDING模式下的填充效果如下:
在Charles Petzold《windows程序设计》中关于多边形填充的描述难以理解,在网上查了很多资料,说的也比较乱,综合起来,不知道这样理解对不对,请老师、同学...帮忙理解
相关文章推荐
- SetPolyFillMode(hdc,iMode)中的iMode参数的区别
- SetPolyFillMode(hdc,imode)中alternate与winding的区别
- 通过setDefaultKeyMode设置Activity的五种按键模式
- 画笔设置模式 paint.setXfermode
- 14. 65. 3. 设置选择模式 JTable.setSelectionMode
- setEchoMode()设置模式
- WinAPI: SetBkMode - 设置背景模式
- 设置Flush刷新模式setFlushMode()
- android.graphics.Paint的setXfermode方法 设置两张图片相交时的模式
- windows编程中关于设置映象模式的四个函数SetWindowOrg SetViewPortOrg SetMapMode SetWindowExtEx SetViewPortExtEx
- 设置Flush刷新模式setFlushMode()
- Windows api之SetPolyFillMode的winding填充模式原理
- windows编程中关于设置映象模式的四个函数SetWindowOrg SetViewPortOrg SetMapMode SetWindowExtEx SetViewPortExtEx .
- 设置UIImage的渲染模式:UIImage.renderingMode
- WebPartManager.EditDisplayMode此页不支持指定的显示模式。请确保已启用个性化设置并且此页上存在相应的区域。
- sphinx coreseek SetSortMode(SPH_SORT_ATTR_ASC, '') 对float 排序设置bug
- 《Windows游戏编程大师技巧》里SetDisplayMode()设置色深为8位所出现的问题
- AutoCAD系统变量: OSMODE --设置“对象捕捉”的运行模式
- SetDockingMode 设置dock停泊方式
- 使用alter session set current_schema设置当前模式