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 的方 ...
随机推荐
- JointBoost+CRF+GraphCut做手绘草图的分割
研究生做的稍微有点水平的就这两个项目了:一个是利用SVM做手绘草图的分类,另一个是利用JointBoost+CRF做手绘草图的分割.总结得出的经验是做研究的方法就是将别人大神的代码看懂然后改成适合自己 ...
- sql中的inner join ,left join ,right join
左连接LEFT JOIN, 也就是说,左外连接的含义是限制连接关键字右端的表中的数据必须满足连接条件,而不关左端的表中的数据是否满足连接条件,均输出左端表中的内容.不满足连接条件的 ,连接字段栏位将对 ...
- win10 64位安装memcache扩展和开启redis扩展
前面有关于win10下搭建wamp环境的介绍,在此不在赘述,php操作memcache有memcache库和memcached库,其中memcache是php内置的扩展库,支持面向对象和面向过程两种操 ...
- 海思H264解码库 hi_h264dec_w.dll 水印问题
上一篇 海思h264解码库 , 实现了H264帧的简单解码,但更换相机后,出现了解码视频中央出现水印的问题,水印如下图 查找网络,基本就这一篇相关的,还没给出好的解决办法. http://bbs. ...
- 安卓贴图源码--->单点触控.多点触控.类似in/百度魔图
效果如图: 类似in,百度魔图,的贴图功能 核心的地方:单/多点 旋转缩放后记录各个顶点小图标位置 引用这里 http://blog.csdn.net/xiaanming/article/detai ...
- PHP慢脚本日志和Mysql的慢查询日志
1.PHP慢脚本日志 间歇性的502,是后端 PHP-FPM 不可用造成的,间歇性的502一般认为是由于 PHP-FPM 进程重启造成的. 在 PHP-FPM 的子进程数目超过的配置中的数量时候,会出 ...
- CSS3 时钟
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- [Python] Python中的一些特殊函数
1. 过滤函数filter 定义:filter 函数的功能相当于过滤器.调用一个布尔函数bool_func来迭代遍历每个列表中的元素:返回一个使bool_func返回值为true的元素的序列. a=[ ...
- spring mvc+mybatis+sql server简单配置
context.xml配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&qu ...
- MFC在关闭第二个窗口时关闭主对话框
AfxGetApp()->m_pMainWnd->SendMessage(WM_CLOSE);//关闭主对话框