绘制填入区域 之 ALTERNATE 与 WINDING
来源:互联网 发布:网络教育报名时间2017 编辑:程序博客网 时间:2024/05/14 21:39
关于WINDING应该没什么的,主要问题集中在ALTERNATE。
ALTERNATE需要进行两个步骤的分析首先画出的多边形,按照定点的先后次序,会产生组成多边形的各条边交叉和不交叉两种情况,在图中,“points1 polygon shape”的图形是由顶点交叉形成的,“points2 polygon shape”的图形是由顶点未交叉形成的。
在未交叉的情形下,ALTERNATE与WINDING绘制出的效果是一样的。
接下去分析,在顶点组成的边交叉情况下绘制出的图形会存在有些区域被黄颜色填充,有些没有填充。
在填充多边形的时候,显示器是逐行扫描将多边形填满的。就是说如果是个矩形,显示器就是从左到右画最上面一行的一根黄线,然后依次画第二行,第三行,直到最下面一行被黄颜色填满。
画多边形的行为和画矩形是一样的,就是每一行画的线段有长有短而已。这个行为就是逐行扫描,而每一行被称为“扫描行”。
当有左边顶点(10,190)画到右边顶点(170,190)时,这根水平线(扫描行)不一定是连续画的,中间可能会断掉。
譬如,当中间会经过其他的边形成一个交叉点时,这跟水平线需要作出判断,从(10,190)开始遇到的第一个交叉点需要进行编号,(10,190)这个点为1号,第一个交叉点为2号,在1号和2号顶点之间的水平线,显示器是画出来的,根据MSDN的说明:
fills area between odd-numbered and even-numbered polygon sides on each scan line
中文意思:在每一条扫描行上填充奇数边和偶数边之间的区域。
说实话,MSDN的解释十分晦涩,我甚至觉得它的解释不精确,如何解释(10,190)这个点?可以硬套它的解释,不过不懂的人根本无法理解(10,190)这个点究竟算奇数边还是偶数边?
因此更容易理解,还是将MSDN上的边理解为点-- 在每一条扫描行上填充奇数点和偶数点之间的线段。
因此,(10,190)这个点编号为1(再次声明下),遇到的第一条交叉边形成的交叉点为2号点,1和2之间的水平线段进行黄色填充,接下去从2号点开始往右扫描,扫描到又一个交叉点,编号为3号,2号和3号之间不填充黄色,也就是MSDN上说的,在奇数边和偶数边之间进行填充,但在偶数边和奇数边之间不填充。
这里再次更正MSDN的说法,应该是从奇数点到偶数点之间进行填充,从偶数点到奇数点之间不填充
-- fill line segment from odd-numbered point to even-numbered point and not fill line segment from even-numbered point to odd-numbered point on each scan line.
- 绘制填入区域 之 ALTERNATE 与 WINDING
- 绘制填入区域 之 ALTERNATE 与 WINDING 的解释
- Alternate Winding
- 画线,绘制填入区域
- 对alternate和winding填入方式的理解 《windows程序设计》笔记
- 多边形的填充方式ALTERNATE与WINDING的区别
- SetPolyFillMode(hdc,imode)中alternate与winding的区别
- 多边形填充方式:ALTERNATE与WINDING的区别
- 第五章 图像基础(绘制填入区域)
- windows 多边形填充方式 ALTERNATE和WINDING
- 详解:多边形填充方式(ALTERNATE和WINDING)的区别
- WINDING 和 ALTERNATE模式的区别【学习札记】
- win32两种填充模式ALTERNATE和WINDING的区别
- Halcon学习之八:图像区域叠加与绘制
- Dynamics CRM2016 WebApi之alternate key的更新与删除
- Padding与绘制区域--android:clipToPadding和android:clipChildren
- WINDING方式不能填充所有内部区域的图形的例子
- Windows api之SetPolyFillMode的winding填充模式原理
- ASP.NET URL Rewrite. URL重写(静态页和伪静态共存)
- 老问题:JSP,AJAX,UTF-8,Get,乱码!
- VS2008在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的解决
- oracle 常用功能函数汇总
- 小企鹅输入法快捷键
- 绘制填入区域 之 ALTERNATE 与 WINDING
- VC创建目录及取得系统时间的方法
- shell 总结
- Android 支持多屏幕机制
- Flash8-动态显示汉字乱码问题的解决
- LR安装及破解常见问题小结
- QT之QGroupBox
- 算法学习--数组
- 窗口风格/ 窗口类风格