Quartz2D进行渲染

作者: 非典型技术宅 | 来源:发表于2017-01-15 15:57 被阅读540次

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

在此之前,分享了一些关于绘图方面的基础。可以通过传输门快捷进入:

1.绘图系列之:使用Quartz2D进行绘图

2.绘图系列之:Quartz2D进行渲染

3.绘图系列之:OC绘制基本图形

4.绘图系列之:OC绘制饼状图、柱状图和扇形图

上一篇写了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下的贝塞尔曲线绘制了。

相关文章

  • Quartz2D进行渲染

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

  • Quartz2D

    学习链接 IOS CGContext用法 Quartz2D 绘图 画线的三个步骤: 获取上下文 绘图 渲染 参考链...

  • Quartz2D学习记录

    Quartz2D 概述及作用 Quartz2D 的 API 是纯 C 语言的,Quartz2D 的 API 来自于...

  • iOS学习笔记08-Quartz2D绘图

    一、Quartz2D简单介绍 在iOS中常用的绘图框架就是Quartz2D,Quartz2D是Core Graph...

  • Quartz2D--贝塞尔路径去画图

    简述: 1、Quartz2D是什么Quartz2D是二维绘图引擎,同时支持IOS和Mac 2、Quartz2D能做...

  • iOS之Quartz2D

    什么是Quartz2D Quartz2D是⼀个二维绘图引擎,同时支持iOS和Mac系统Quartz2D的API是纯...

  • Quartz2D以及drawRect的重绘机制

    一、什么是Quartz2D Quartz2D是⼀个二维绘图引擎,同时支持iOS和Mac系统Quartz2D的API...

  • Quartz2D简单用法

    Quartz2D 知识 Quartz2D是一个二维绘图引擎,同时支持ios和Mac系统 Quartz2D能完成的工...

  • Quartz2D

    Quartz2D Quartz2D概述 Quartz2D可以完成什么:绘制图形:线,三角形,圆,椭圆等等绘制文字(...

  • 使用Quartz2D进行绘图

    来来来,好玩的东西终于来了。接下来的几篇,咱们都将要聊一聊iOS中绘制图像的事儿哈。之前有一篇说到cell分割线顶...

网友评论

本文标题:Quartz2D进行渲染

本文链接:https://www.haomeiwen.com/subject/eyrgvttx.html