Skip to content

Commit 6162f80

Browse files
committed
Update
1 parent a1ff100 commit 6162f80

1 file changed

Lines changed: 7 additions & 9 deletions

File tree

CustomView/Advance/[7]Path_Play.md

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -73,20 +73,18 @@ rXxx方法 | rMoveTo, rLineTo, rQuadTo, rCubicTo | **不带r的方法是基于
7373

7474
我们在之前的文章中了解到,Paint有三种样式,“描边” “填充” 以及 “描边加填充”,我们这里所了解到就是在Paint设置为后两种样式时**不同的填充模式对图形渲染效果的影响**
7575

76-
> 相信很多小伙伴看到这里会很不屑的想,这种级别的东西本大爷小学就已经会了,不就是把一个封闭的图形里面涂上颜色嘛,so easy。
76+
**我们要给一个图形内部填充颜色,首先需要分清哪一部分是外部,哪一部分是内部,机器不像我们人那么聪明,机器是如何判断内外呢?**
7777

78-
确实,给图形填充一种颜色的确很简单,这是因为我们平时常见图形都是**非自相交图形**,而我们这里主要讲的是**自相交图形**的渲染问题。
78+
机器判断图形内外,一般有以下两种方法:
7979

80-
> 呐呢? 怎么突然冒出来个 “自相交” 和 “非自相交” 概念?现在的人啊,一言不合就拿别人不懂的概念来忽悠人。
81-
![](http://ww3.sinaimg.cn/large/005Xtdi2jw1f404ybu1r9j307j06h745.jpg)
80+
> PS:此处所有的图形均为封闭图形,不包括图形不封闭这种情况。
8281
83-
其实这也不是什么高大上的东西,你肯定以前见过,那么什么是自相交呢?
82+
方法 | 判定条件 | 解释
83+
---------|-----------------------------------------------|----------------
84+
奇偶规则 | 奇数表示在图形内,偶数表示在图形外 | 从任意位置p作一条射线, 若与该射线相交的图形边的数目为奇数,则p是图形内部点,否则是外部点。
85+
非零规则 | 若环绕数为0表示在图形内,非零表示在图形外 | 首先使图形的边变为矢量。将环绕数初始化为零。再从任意位置p作一条射线。当从p点沿射线方向移动时,对在每个方向上穿过射线的边计数,每当图形的边从右到左穿过射线时,环绕数加1,从左到右时,环绕数减1。处理完图形的所有相关边之后,若环绕数为非零,则p为内部点,否则,p是外部点。
8486

85-
**自相交图形定义: 多边形在平面内除顶点外还有其他公共点**
8687

87-
下面就是一个很简单的自相交图形:
88-
89-
**我们要给一个图形内部填充颜色,首先需要分清哪一部分是外部,哪一部分是内部才可以**
9088

9189

9290

0 commit comments

Comments
 (0)