Quartz 2D简介

1、Quartz 2D是一种二维绘图库,它与iphone OS紧密结合在一起,能协同所有相关框架进行工作,包括Core Animation、OpenGL ES和UIKit。

2、Quartz的绘图功能取决与3个核心概念:上下文、路径和状态。

①上下文(context):用户描述将图形写入哪里,该过程由CGContextRef定义。通常,可以写入UIView或位图中。

②路径:路径是那些经常在Quartz中绘制的内容。起初,他们是线段和弧的集合,随后通过描边或填充的方式绘制到屏幕中。

③状态:状态用于保存变换值、裁剪路径、填充和描边设置、alpha值、其他混合模式、文本特征等。可以用CGContextSaveGState存储当前状态,是有那个CGContextRestoreGStete恢复当前状态,这样就能在复杂绘图设置间轻松地进行切换。

3、常用的类

CGContextAddArc的使用

这个函数让我在纸上画了半天才搞明白,把我的理解给大家分享下。

void CGContextAddArc(CGContextRef c, CGFloat x, CGFloat y, CGFloat radius, CGFloat startAngle, CGFloat endAngle, int clockwise)

CGContextRef不解释了,x,y为圆点坐标,startAngle为开始的弧度,endAngle为 结束的弧度,clockwise 0为顺时针,1为逆时针。

CGContextAddArc(context, 160, 200, 100, 0, 45*(M_PI/180), 0);

所以对上面这对代码的解释是这样的:

1)startAngle为0,绿色箭头的地方。

2)endAngle为45,黄色箭头的地方。

3)clockwise为0,按照红色箭头往下绘制图形。

4)所以效果就是红色的扇形。

补充:如果clockwise为1,则是蓝色部分区域。

4、实例画圆

- (void)viewDidLoad {

[super viewDidLoad];

/*

BaseView *view = [[BaseView alloc] initWithFrame:CGRectMake(10, 20, 300, 300)];

[self.view addSubview:view];

*/

UIGraphicsBeginImageContext(CGSizeMake(20, 20));  //创建图形上下文

CGContextRef context = UIGraphicsGetCurrentContext();  //返回当前上下文,通常指当前UIKit对象中的上下文,但也可能是手工创建的上下文

CGContextSetRGBFillColor(context, 1, 0, 0, 1.0);

CGContextBeginPath(context);  //创建新路径

CGContextAddArc(context, 10, 10, 10, 0,2*M_PI, 1);

CGContextFillPath(context);  //结束路径

UIImage *redBall = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

UIImageView *redBallView = [[UIImageView alloc] initWithImage:redBall];

//    redBallView.frame = CGRectMake(20, 20, 400, 400);

redBallView.center = CGPointMake(160, 330);

[self.view addSubview:redBallView];

}

时间: 2024-10-12 02:42:31

Quartz 2D简介的相关文章

1.0 Quartz 2D简介

Quartz2D须知: (1)Quartz 2D是苹果官方的二维绘图引擎,同时支持iOS和Mac OS X系统(跨平台,纯 C 语言的) (2)Quartz2D的API是纯C语言的 (3)Quartz2D的API来自于Core Graphics框架         (4)数据类型和函数基本都以CG作为前缀 CGContextRef —— 图形上下文(相当于一个草稿纸) CGPathRef  ——— 图形路径 CGContextStrokePath(cox);   ——— 渲染 Quartz2D 

Quartz.NET简介及入门指南

Quartz.NET简介 Quartz.NET是一个功能完备的开源调度系统,从最小的应用到大规模的企业系统皆可适用. Quartz.NET是一个纯净的用C#语言编写的.NET类库,是对非常流行的JAVA开源调度框架 Quartz 的移植. 入门指南 本入门指南包括以下内容: 下载 Quartz.NET 安装 Quartz.NET 根据你的特定项目配置 Quartz 启动一个样例程序 下载和安装 你可以下载 zip 文件或使用 Nuget 程序包.Nuget 程序包只包含 Quartz.NET 运

Quartz 2D 的一些使用

Quartz 2D是一个绘图框架,最近看了一下它的官方文档以及提供的的demo.看着这些资料自己做了一些小结. 1.线段的绘制 (绘制一条线段) //获取图像上下文 CGContextRef context = UIGraphicsGetCurrentContext(); //设置线条颜色 CGContextSetRGBStrokeColor(context, .5, .5, .5, 1); //设置线条宽度 CGContextSetLineWidth(context, 1); //设置起点 C

Quartz 2D编程指南(7) - 阴影(Shadows)

阴影是绘制在一个图形对象下的且有一定偏移的图片,它用于模拟光源照射到图形对象上所形成的阴影效果,如果7-1所示.文本也可以有阴影.阴影可以让一幅图像看上去是立体的或者是浮动的. 阴影有三个属性: 1.x偏移值,用于指定阴影相对于图片在水平方向上的偏移值. 2.y偏移值,用于指定阴影相对于图片在竖直方向上的偏移值. 3.模糊(blur)值,用于指定图像是有一个硬边(hard edge,如图7-2左边图片所示),还是一个漫射边(diffuse edge,如图7-1右边图片所示) 本章将描述阴影是如何

Quartz 2D Programming Guide

Quartz 2D Programming  Guide 官方文档: Quartz 2D Programming Guide 译文: Quartz 2D编程指南(1) - 概览 Quartz 2D编程指南(2) - 图形上下文(Graphics Contexts) Quartz 2D编程指南(3) - 路径(Paths)[上] Quartz 2D编程指南(3) - 路径(Paths)[下] Quartz 2D编程指南(4) - 颜色和颜色空间 Quartz 2D编程指南(5) - 变换 Quar

iOS开发——图形编程OC篇&(六)Quartz 2D高级使用(二)

Quartz 2D高级使用 一.绘图路径 A.简单说明 在画线的时候,方法的内部默认创建一个path.它把路径都放到了path里面去. 1.创建路径  cgmutablepathref 调用该方法相当于创建了一个路径,这个路径用来保存绘图信息. 2.把绘图信息添加到路径里边. 以前的方法是点的位置添加到ctx(图形上下文信息)中,ctx 默认会在内部创建一个path用来保存绘图信息. 在图形上下文中有一块存储空间专门用来存储绘图信息,其实这块空间就是CGMutablePathRef. 3.把路径

iOS开发——图形编程OC篇&(三)Quartz 2D绘图

绘图 一.简单说明 图形上下文(Graphics Context):是一个CGContextRef类型的数据 图形上下文的作用:保存绘图信息.绘图状态 决定绘制的输出目标(绘制到什么地方去?)(输出目标可以是PDF文件.Bitmap或者显示器的窗口上) 相同的一套绘图序列,指定不同的Graphics Context,就可将相同的图像绘制到不同的目标上. Quartz2D提供了以下几种类型的Graphics Context: Bitmap Graphics Context PDF Graphics

iOS开发——图形编程OC篇&(一)Quartz 2D介绍

Quartz 2D介绍 一.什么是Quartz2D Quartz 2D是?个二维绘图引擎,同时支持iOS和Mac系统 Quartz 2D能完成的工作: 绘制图形 : 线条\三角形\矩形\圆\弧等 绘制文字 绘制\生成图片(图像) 读取\生成PDF 截图\裁剪图片 自定义UI控件 二.Quartz2D在iOS开发中的价值 为了便于搭建美观的UI界面,iOS提供了UIKit框架,??有各种各样的UI控件 UILabel:显?文字 UIImageView:显示图片 UIButton:同时显示图片和?字

Quartz 2D - 5.变换(Transforms)

Quartz 2D 绘制模型定义了两种独立的坐标空间:用户空间(用于表现文档页)和设备空间(用于表现设备的本地分辨率).用户坐标空间用浮点数表示坐标,与设备空间的像素分辨率没有关系.当我们需要一个点或者显示文档时, Quartz会将用户空间坐标系统映射到设备空间坐标系统.因此,我们不需要重写应用程序或添加额外的代码来调整应用程序的输出以适应不同的设备. 我们可以通过操作CTM(current transformation matrix)来修改默认的用户空间.在创建图形上下文后,CTM是单位矩阵,