Alternate Winding

转载 2016年08月29日 14:27:16

见<<windows程序设计>> 第五版 Charles Petzold,P139

刚看时,有点摸不着头脑.网上搜索看了些前辈的解释.


回头再看书本,发现其实Petzold大牛把这个问题解释简单明了,为何第一次看的时候居然入不了脑子?


完全按照书上写的来解释,如下:


1 Alternate 模式:  奇数填充,偶数不填充.

       从一封闭区域内一个点画条射线到无穷远处, 碰到奇数条边 则填充点所在的区域; 碰到偶数条边则不填充

     下图左边是alternate 模式,区域4和5就不填充,他们碰到的边数是2,是偶数,因此不填充.


2. Winding模式:  奇数填充,偶数看情况(一个内部计数器counter非零则填充,counter=0则不填充)

            下图右边是winding模:

           很显然,1,2,3区域内找个点画条射线穿出整个图形,碰到的边的个数为1,是是奇数,因此填充.

          对于,4,5这2个区域,射线出来的时候,碰到的边数是偶数,就要看计数器counter是否为非零了.

         以4来说: 开始counter=0,碰到第一个边是向左的,counter++;碰到第二条边是向右的,与第一个边反向,count--; 最终counter = 0,因此不填充.

        以5来说,开始counter=0,碰到第一个边是向左,counter++; 碰到第二个边还是同向,counter++;最终counter=2,故填充


//  把碰到的第一个边作为count方向,后面的与它同向就++,反向就-- 






其他解释参数如下:



http://bbs.csdn.net/topics/40019151

http://loveljc2000.blog.163.com/blog/static/1896335182011526012494/

http://blog.csdn.net/sun_shine_/article/details/6448947

http://blog.csdn.net/goki123/article/details/5216303

http://msdn.microsoft.com/en-us/library/windows/desktop/dd145080(v=vs.85).aspx

http://comments.gmane.org/gmane.comp.lib.cairo/23250

相关文章推荐

win32两种填充模式ALTERNATE和WINDING的区别

刚学到windows程序设计的填充模式时,对于ALTERNATE和WINDING这两种模式还是 有点晕乎乎的,看了下msdnWhen the fill mode is ALTERNATE, GDI ...

SetPolyFillMode(hdc,imode)中alternate与winding的区别

在学习windows sdk编程的时候遇到这个问题。书上写的百思不得其解,于是求助msdn。我们先看看msdn怎么说。 ALTERNATE...

Non-Zero Winding Number Rule 非零绕组规则

Non-Zero Winding Number Rule 非零绕组规则 该方法常用与判断点是否在多边形或曲线上。 给定一条曲线C和一个点P,构造一条从P点出发射向无穷远的射线。找出所有该射线和...

Windows api之SetPolyFillMode的winding填充模式原理

俗话说,佛法只渡有缘人,咱直接上英文了 SetPolyFillMode 的填充模式研究 ALTERNATE WINDING 函数原型 int SetPolyFillMode( __in ...

exploit - win32 - stack winding and unwinding

In order to understand function stack, we create the demo code. #include #include int function3(int...

winding software

  • 2014年03月11日 15:03
  • 740KB
  • 下载

【Ubuntu】Ubuntu alternate 和 Desktop之间的区别

转载自: http://blog.163.com/gene_lu/blog/static/6402542120098231582333/ http://lkinglich.blog.51cto.co...

Alternate Gothic No.2 BT字体

  • 2015年11月11日 14:50
  • 24KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Alternate Winding
举报原因:
原因补充:

(最多只允许输入30个字)