Quartz2D进行渲染1. 渲染模式2. even-odd rule:奇偶填充规则3. nonzero winding number rule:非零绕数规则4. 其他会用到的渲染模式5. 混合模式

这一晃就到了2017年,这期间好多假期啊,圣诞节、元旦,还赶上了一次为期一周的封闭开发。距离上一次更新文章过去了三周多,好羞惭。

上一篇写了Quartz2D的一些基本用法,今天分享一下Quartz2D的渲染模式。

1. 渲染模式

  • 空心 StrokePath- 实心 FillPath 和 EOFillPath (填充)
  • 填充一个路径的时候,路径里面的子路径都是独立填充的。
  • 假如是重叠的路径,决定一个点是否被填充,有两种规则
    • 1,nonzero winding number rule(非零绕数规则),假如一个点被从左到右跨过,计数器+1,从右到左跨过,计数器-1,最后,如果结果是0,那么不填充,如果是非零,那么填充。
    • 2,even-odd rule(奇偶规则),假如一个点被跨过1次,被跨过了奇数次,那么要被填充,被跨过偶数次则不填充,和方向没有关系

2. even-odd rule:奇偶填充规则

  • 当一个点被覆盖过奇数次则“填充”,偶数次则“不填充”。
CGContextEOFillPath(ctx);

奇偶填充规则

3. nonzero winding number rule:非零绕数规则

  • 当一个点被从左到右覆盖过标记为1,从右到左覆盖过标记为-1
CGContextDrawPath(ctx, kCGPathEOFillStroke);
  • 当标记为0的时候不填充,其他则填充- 简单总结,这个规则与方向有关,与次数无关

非零绕数规则

4. 其他会用到的渲染模式

  • 调用 CGContextDrawPath(context, kCGPathFill) 填充路径。
  • 调用 CGContextDrawPath(context, kCGPathStroke) 描边路径。
  • 调用 CGContextDrawPath(context, kCGPathFillStroke) 填充并描边路径。

5. 混合模式

  • 调用 CGContextSetBlendMode(context, kCGBlendModeNormal) 设置回合模式。 混合模式与常用的图形软件(如 Photoshop)的混合模式效果相同。有没有瞬间觉得高大上啊?

如果有兴趣继续深入了解,可以参考:官方文档。 在简书上,还看到过一篇连载,非常不错。FalmeCore Graphics - Quartz 2D Programming Guide(中文翻译版)

下一篇咱们就要开始聊一聊OC下的贝塞尔曲线绘制了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java帮帮-微信公众号-技术文章全总结

第十一天 面向对象-接口多态【悟空教程】

1374
来自专栏函数式编程语言及工具

Scalaz(41)- Free :IO Monad-Free特定版本的FP语法

我们不断地重申FP强调代码无副作用,这样才能实现编程纯代码。像通过键盘显示器进行交流、读写文件、数据库等这些IO操作都会产生副作用。那么我们是不是为了实现纯...

1959
来自专栏沈唁志

几道PHP试题,来试试看看你会不会也掉入陷阱

1463
来自专栏FreeBuf

利用CSS注入(无iFrames)窃取CSRF令牌

CSS相信大家不会陌生,在百度百科中它的解释是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。 ...

2237
来自专栏GreenLeaves

C# String.Format的格式限定符与Format方法将多个对象格式化一个字符串原理

Format方法将多个对象格式化成一个字符串Format方法解析格式字符串的原理:

572
来自专栏ytkah

dedecms利用addfields body在首页调用文章内容

  开源程序比较好的一点是可以进行二次开发,比如ytkah想要开发一个专家出诊表的功能模块,如下图所示,每天的专家都不一样,可以用到内容模型,但是相对比较复杂;...

3316
来自专栏黑泽君的专栏

JVM对异常的默认处理方案

711
来自专栏天天

微信小程序中wv:html的方法

在微信小程序开发过程中,我们有没有遇到这种情况,数据接口返回的是字符串,字符串中还包含了普通html便签,例如:

1721
来自专栏飞雪无情的博客

Go语言中使用正则提取匹配的字符串

我们在做爬虫的过程中,需要对爬取到的内容处理,比如说提取出我们需要的内容和文本,比如城市信息、人员信息等等,除了字符串查找外,使用正则匹配是比较优雅和方便的方案...

1053
来自专栏hbbliyong

看到他我一下子就悟了-- 泛型(2)

   先说些题外话,只所以写这些东西。是看了CSDN上的曹版主的一篇:手把手教编程,不知道有没有人愿意参与。说实话,我工作四年,总感觉晕晕乎乎的,好多技术都 懂...

2779

扫码关注云+社区