1.1 Quartz 2D 绘图
| 1. 获取【图形上下文】对象 —— (拿到草稿纸) |
|
2. 向【图形上下文】对象中添加【路径】
2.1 拼接路径(画内容)
2.2 添加路径到上下文(把内容放在草稿纸上)
|
| 3. 渲染 ——(把【图形上下文】中的图形绘制到对应的设备上)(根据草稿纸上的内容显示出来东西) |
// 获取上下文
CGContextRef ctx = UIGraphicsGetCurrentContext(); // 创建可变路径(c)
CGMutablePathRef path = CGPathCreateMutable(); // 把路径放在上下文当中
CGContextAddPath(ctx, path); // 创建路径对象(oc)
UIBezierPath* path = [UIBezierPath bezierPath]; // 渲染
CGContextStrokePath(ctx);
|
方式一:直接调用 Quartz2D 的 API 进行绘图
步骤:
1、获取绘图上下文
2、把图形绘制到绘图上下文上
3、把绘图上下文上的图形渲染到对应的设备上
|
|
方式二:调用 UIKit 框架封装好的 API 进行绘图(通过创建路径对象的方式来绘图)
步骤:
1、先把图形缓存到"路径对象"中,
2、然后再把路径对象添加到上下文对象中
3、最后再把上下文对象渲染到对应的设备上
比如:画图片、文字到控件上。(UIKit 已经封装好了)
|
#import “TDView.h" @implementation TDView
- (void)drawRect:(CGRect)rect { // 1.获取,当前的layer类型的,图形上下文
CGContextRef ctx = UIGraphicsGetCurrentContext(); // 2.拼接路径,同时,把路径添加到上下文当中(下面代码是搞一条线段)
CGContextMoveToPoint(ctx, , );
CGContextAddLineToPoint(ctx, , ); // 3.渲染(绘制路径)<把 上下文中的 路径 移动到 UIView 上>
CGContextStrokePath(ctx); // StrokeXxxx 表示画线(边线)(空心图形)
CGContextFillPath(ctx); // FillXxx 表示画填充的图形(实心图形)
}
@end
方法2:
- (void)test2
{
// 1.获取图形上下文(layer)
CGContextRef ctx = UIGraphicsGetCurrentContext(); // 2.拼接路径
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, , );
CGPathAddLineToPoint(path, NULL, , ); // 3.把路径添加到上下文当中
CGContextAddPath(ctx, path); // 4.渲染
CGContextStrokePath(ctx);
}
1.1 Quartz 2D 绘图的更多相关文章
- Quartz 2d绘图
今天看了一下Quartz 2D绘图,我只想说:不要把绘图和动画那些东西当做一个很复杂的东西,其实只要你认真看还是可以理解的.他们并不难.啰嗦了几句,现在直接进入正题: 前提是我们必须新建一个singl ...
- iOS基础 - Quartz 2D绘图的基本步骤
一.使用Quartz 2D绘图的基本步骤 1) 获取上下文context(绘制图形的地方) 2) 设置路径(路径是用来描述形状的) 3) 将路径添加到上下文 4) 设置上下文属性(设置颜色,线宽, ...
- iOS基础 - Quartz 2D绘图
一.Quartz 2D Quartz 2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境. Quartz 2D以PDF的规范为基础的图形库,用来绘制二维文字和图形,允许相同的绘图指令在任 ...
- Core Graphics框架 利用Quartz 2D绘图
首先,什么是Core Graphics和Quartz 2D? Core Graphics:是基于Quartz 2D绘图引擎的一个C语言的API绘图框架.它也是iOS开发中最基本的框架(Framewor ...
- 关于Quartz 2D绘图的简单使用
Quartz 2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境,Quartz 2D的API可以实现许多功能,如:基于路径的绘图.透明度.阴影.颜色管理.反锯齿.PDF文档生成和PDF元 ...
- iOS - Quartz 2D 二维绘图
1.Quartz 2D 简介 Quartz 2D 属于 Core Graphics(所以大多数相关方法的都是以 CG 开头),是 iOS/Mac OSX 提供的在内核之上的强大的 2D 绘图引擎,并且 ...
- iOS - Quartz 2D 贝塞尔曲线
1.贝塞尔曲线 贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线.一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖动的支 ...
- iOS_Quartz 2D绘图
目 录: 一.基础知识掌握 二.Quartz 2D绘图基础:CGContextRef实现简单地绘制图形 三.CGContextRef实现文字.图片.基于路径的图形绘制 四.在内存中绘制位图 五.添加 ...
- Quartz 2D(常用API函数、绘制图形、点线模式)
Quzrtz 2D 绘图的核心 API 是 CGContextRef ,它专门用于绘制各种图形. 绘制图形关键是两步: 1.获取 CGContextRef ; 2.调用 CGContextRef 的方 ...
随机推荐
- elasticsearch agg
OK curl -XGET http://21.3.5.121:9200/ipv4geo/service/_count -d '{"query":{"match" ...
- 11月10日下午 ajax做显示信息以后用ajax、Bootstrp做弹窗显示信息详情
1.用ajax做弹窗显示信息详情 nation.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu ...
- 基于canvas的陈列订货的分析
订货会软件中又新增了进行陈列订货,即一杆衣服订的显示出来,没订的不显示出来 主要遇到的问题是如何呈现,原先老是想着定位,left,top但是花出来的图容易出现原先的数据填写错误导致后期的图片的呈现出现 ...
- APP的消息推送(极光推送)
APP的消息推送,使用的第三方平台是极光推送 简单案例(以Thinkphp为例): 1.下载下载PHPSDK 2.把PHPSDK目录下的jpush-api-php-client-3.5.1\src\J ...
- 微信公众平台"微信连Wi-Fi"功能来了 线下微信增粉利器
微信连Wi-Fi功能在第三方开发者和服务商已经有出现了,但有些成本相对会高些.近日微信公众平台新添了一个功能插件“微信连Wi-Fi”,已有微信认证过的公众号即可申请开通.赶紧去布局这个线下微信增粉利器 ...
- MySQL数据类型 int(M) 表示什么意思?详解mysql int类型的长度值问题
MySQL 数据类型中的 integer types 有点奇怪.你可能会见到诸如:int(3).int(4).int(8) 之类的 int 数据类型.刚接触 MySQL 的时候,我还以为 int(3) ...
- PE440
一些证明,推荐复制入atom观看 首先我们考虑这个T(n)是什么,我们可以列出递归式: (definition:T) T(0) = 1 T(1) = 10 T(n) = 10*T(n-1) + T(n ...
- js自动更新时间+星期
<div class="top_bar" id="cao" height="28px"><script> setIn ...
- linux 使用 nvidia 的 gpu
第一种方法: [Wizard@Wizard ~]$ nvidia-detect kmod-nvidiaOptimus hardware detected: An Intel display contr ...
- spring Quartz多个定时任务的配置
Quartz多个定时任务的配置 1,配置文件与spring整合,需要在spring 的总配置中一入或者在web.xml中spring监听中加上 ztc_cp-spring-quartz.xml 注:定 ...