一、使用Quartz 2D绘图的基本步骤

1) 获取上下文context(绘制图形的地方)

2) 设置路径(路径是用来描述形状的)

3)  将路径添加到上下文

4)  设置上下文属性(设置颜色,线宽,线性等)

5)  绘制路径

6)  释放路径(在Quartz2D中,因为是C语言的框架,所有用Create,Copy字样方法实例化的对象,都需要自行释放)

二、Quartz2D是一套C语言的框架,C语言中使用方法

1> 在C语言中,所有的对象,都是通过对象的引用地址来使用的,因此不需要使用*

2> C语言不是面向对象的语言,它是面向过程的语言,因此,在C语言中,如果要操作某一个对象,都是通过函数来实现

3> ARC是OC的自动引用计数,如果在C语言中,为对象分配(Create,Copy)了内容,我们需要自己释放(Release)

三、设置RGB颜色的介绍

Red    红(0~255)程序员(0~FF) => r / 255.0 0~1.0

Green  绿(0~255)程序员(0~FF) => g / 255.0 0~1.0

Blue   蓝(0~255)程序员(0~FF) => b / 255.0 0~1.0

Alpha  透明度 0~1.0

0表示完全透明

1表示完全不透明

2^8 * 2^8 * 2^8 = 2^24 = 2^4 * 2^10 * 2^10 = 16 * 1K * 1K 16位真彩色

提示:仅在使用Quartz2D绘图时,尽量不要改变Alpha值,如果改变透明度,会严重影响性能

如果不指定颜色,默认使用黑色

四、填充模式

kCGPathFill            填充绘制,针对关闭的路径使用

kCGPathStroke          绘制线条,无所谓路径是否关闭

kCGPathFillStroke      填充并绘制线条

kCGPathEOFill          异或填充,针对关闭路径使用

kCGPathEOFillStroke    异或填充并画线

五、弧线参数

1)上下文

2) x, y 弧线所在圆上的圆心

3)半径

4) 开始角度、结束角度,0度是圆形最右侧的点

5) 顺时针:0 逆时针:1

六、利用上下文直接绘图,比使用路径要简单

1> 使用上下文直接绘图,意味着每次都要指定其中的路径才能够绘制

2> 使用路径绘图,意味着可以预定义一组路径,在需要时直接绘制,灵活度高

3> 除了绘制图形之外,路径还可以用在核心动画中,指定视图运动的轨迹

关于路径,无论是使用绘图,还是核心动画,都必须要掌握

七、因为核心图形使用非常频繁,因此UIKit对于常用的绘图做了一定的封装

设置边线颜色

[[UIColor redColor] setStroke];

// 设置填充颜色

[[UIColor blueColor] setFill];

// 同时设置边线和填充颜色

[[UIColor greenColor] set];

iOS基础 - Quartz 2D绘图的基本步骤的更多相关文章

  1. iOS基础 - Quartz 2D绘图

    一.Quartz 2D Quartz 2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境. Quartz 2D以PDF的规范为基础的图形库,用来绘制二维文字和图形,允许相同的绘图指令在任 ...

  2. Core Graphics框架 利用Quartz 2D绘图

    首先,什么是Core Graphics和Quartz 2D? Core Graphics:是基于Quartz 2D绘图引擎的一个C语言的API绘图框架.它也是iOS开发中最基本的框架(Framewor ...

  3. Quartz 2d绘图

    今天看了一下Quartz 2D绘图,我只想说:不要把绘图和动画那些东西当做一个很复杂的东西,其实只要你认真看还是可以理解的.他们并不难.啰嗦了几句,现在直接进入正题: 前提是我们必须新建一个singl ...

  4. 关于Quartz 2D绘图的简单使用

    Quartz 2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境,Quartz 2D的API可以实现许多功能,如:基于路径的绘图.透明度.阴影.颜色管理.反锯齿.PDF文档生成和PDF元 ...

  5. 1.1 Quartz 2D 绘图

    本文并非最终版本,如有更新或更正会第一时间置顶,联系方式详见文末 如果觉得本文内容过长,请前往本人 “简书”   Quartz2D 绘图主要步骤:   1. 获取[图形上下文]对象 —— (拿到草稿纸 ...

  6. iOS_Quartz 2D绘图

    目  录: 一.基础知识掌握 二.Quartz 2D绘图基础:CGContextRef实现简单地绘制图形 三.CGContextRef实现文字.图片.基于路径的图形绘制 四.在内存中绘制位图 五.添加 ...

  7. iOS - Quartz 2D 二维绘图

    1.Quartz 2D 简介 Quartz 2D 属于 Core Graphics(所以大多数相关方法的都是以 CG 开头),是 iOS/Mac OSX 提供的在内核之上的强大的 2D 绘图引擎,并且 ...

  8. iOS - Quartz 2D 贝塞尔曲线

    1.贝塞尔曲线 贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线.一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖动的支 ...

  9. ios基础动画、关键帧动画、动画组、转场动画等

    概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画.关键帧动画 ...

随机推荐

  1. Codeforces 443 B. Kolya and Tandem Repeat

    纯粹练JAVA.... B. Kolya and Tandem Repeat time limit per test 2 seconds memory limit per test 256 megab ...

  2. 朴素贝叶斯算法(Naive Bayes)

    朴素贝叶斯算法(Naive Bayes) 阅读目录 一.病人分类的例子 二.朴素贝叶斯分类器的公式 三.账号分类的例子 四.性别分类的例子 生活中很多场合需要用到分类,比如新闻分类.病人分类等等. 本 ...

  3. [转]JS中的prototype

    JS中的phototype是JS中比较难理解的一个部分 本文基于下面几个知识点: 1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个 ...

  4. jquery扩展

    jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命名空间的函数,另一种是对象级 ...

  5. crawler_http关闭连接

    1:ps aux|grep Spider4Test.jar 查看端口 2: lsof  -p [端口号] 在爬虫运行期间如果看到 大量的 TIME_WAIT  WAIT_CLOSE 说明请求关闭阻塞[ ...

  6. oracle_oracle中修改日期的显示格式

    我的现在的日期格式是          ,要改成英文的需要输入一下命令: ALTER SESSION SET NLS_DATE_LANGUAGE=AMERICAN; 修改后变为: 同样也得若是英文要想 ...

  7. JavaScript语言基础知识点图示

    原文:JavaScript语言基础知识点图示 一位牛人归纳的JavaScript 语言基础知识点图示. 1.JavaScript 数据类型 2.JavaScript 变量 3.Javascript 运 ...

  8. .NET平台机器学习

    .NET平台机器学习资源汇总,有你想要的么? 接触机器学习1年多了,由于只会用C#堆代码,所以只关注.NET平台的资源,一边积累,一边收集,一边学习,所以在本站第101篇博客到来之际,分享给大家.部分 ...

  9. utf8 和 UTF-8 在使用中的差别

    在使用中经常遇到utf-8和utf8,如今最终弄明确他们的使用不同之处了,如今来和大家分享一下,以下我们看一下utf8 和 UTF-8 有什么差别  "UTF-8"是标准写法,ph ...

  10. HTML静态分页(形如:首页,上一页,下一页,尾页)

    在HTML中有时候我们会用到静态分页,一次拿回一定量的数据结果条目,我们会以形如:第2页,共12页  首页 上一页 下一页 尾页 的方式进行静态分页,以下是该种静态分页的代码,供兄弟姐妹们参考. &l ...