Alternate Winding

2023-10-10 18:50
文章标签 alternate winding

本文主要是介绍Alternate Winding,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

见<<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

这篇关于Alternate Winding的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/182374

相关文章

判断点在多边形内的算法(Winding Number详解)

在计算几何中,判定点是否在多边形内,是个非常有趣的问题。通常有两种方法: 1.Crossing Number(交叉数) 它计算从点P开始的射线穿过多边形边界的次数。当“交叉数”是偶数时,点在外面;当它是奇数时,点在里面。这种方法有时被称为“奇-偶”检验。 2.Winding Number(环绕数) 它计算多边形绕着点P旋转的次数。只有当“圈数”wn = 0时,点才在外面; 否则,点在

SharePoint创建Alternate Access Mapping (AAM)备用访问映射

SharePoint创建Alternate Access Mapping (AAM)备用访问映射 SharePoint的仓库是SQL Server中的内容数据库。这些数据库储存着组织所有的数据。组织可能要求公司外的人员可以访问这个数据的子集。例如,供应商可能希望知道他们的发票是否兑付。  另一个例子是在大型企业中,小时工可能看到和正式职员不同的数据子集。这些数据都在同一个内容数据库中。

UVA 11728 - Alternate Task (数论)

Uva 11728 - Alternate Task 题目链接 题意:给定一个因子和,求出对应是哪个数字 思路:数字不可能大于因子和,对于每个数字去算出因子和,然后记录下来即可 代码: #include <stdio.h>#include <string.h>const int N = 1005;int n, ans[N];void init() {memset(ans, -1

Alternate Data Storage Forensics

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。 http://blog.csdn.net/topmvp - topmvp Learn to pull digital fingerprints from alternate data storage (ADS) devices including: iPod, Xbox, dig

对alternate和winding填入方式的理解 《windows程序设计》笔记

看《windows程序设计》,这里又遇到了不明白的地方,又上网查了查,发现很多地方只是对ALTERNATE解释清楚了,可是   对WINDING说的还是云里雾里。我觉得虽然自己不一定能弄清楚windows要这样处理的原因,但至少得弄清楚windows这样处理的方法吧。后来看了哪个地方的一段英文,总算明白了。现在自己来总结一下这两种填充方式,如果有错的话,大家指出。   ===

关于NTFS的Alternate Data Streams

近日有人问起,如何在文件的摘要属性中增加一个自定义的项。起初我想到Office文档实际上是可以通过OLE来更改,但是其实有些文件比如Mp3,甚至txt文件也有摘要的,这些属性存放在那里呢,经过一番研究,发现实际上是存放在一个叫做Alternate Data Streams的地方,这个东东实际上是另外一个和当前文件相关联的文件。具体请看以下的link,并且你可以在程序中控制这个文件,最后code p

woj 1010 Alternate Sum

证明结论之后很简单。考虑集合中每个元素最终对和的贡献: (1)考虑集合中最大的一个元素,设为t,则在有 t 的子集中,求Alternate Sum时 t 一定是+的(因为它排序后只能在第一个位置),这样的集合有2 ^ (n - 1) 个,从而 t 的贡献为t * 2 ^ (n - 1); (2)考虑集合中第二大的元素 t1,它要在子集合中求Alternate Sum时以 - 的形式出现,则该子

NTFS Alternate Streams

NTFS Alternate Streams: What, When, and How To What Are Alternate Streams?System Support for Stream OperationsSo When to Use Alternate Streams?Programming ConsiderationsCommand Line ToolsDownloads

[答疑]路径类型的alternate和exception

[分析方法,伪创新举例]软件方法(下)分析和设计 第8章 成王国强(269***20) 9:54:26 写EA用例文档的时候,场景步骤中路径类型的alternate和exception是指什么,alernate是不是执行者的不同选项导致不同交互,exception是不是系统的不同反馈? smile(87***31) 10:59:00 alternate是说在主要的路径之外,我们可以提供另一种

细说alternate三两事「精修版」

alternate?你没搞错吧?这不就是“交替、替换”吗?这有什么好说的? 但是如果我问出来:alternate在HTML中的用法,具体作用,可能你只能说:“诶这不是那啥么”。 说实话我一开始也压根不知道有这个东西,但是就在前两天这玩意解决了我的一大“难题”,顿时这兴趣不就来了么! alternate在网站换肤方面的应用 好吧想来你也遇到过这种情况:网页换肤! 其实我们的选择还是挺多的,