Quartz2D是一个二维绘图引擎,同时支持iOS和Mac,为纯c语言文本,Quartz 2D API是Core Graphics框架的一部分,所以你可能会看到Quartz被称为Core Graphics或更简单被称为CG。。Quartz2D的主要功能:1.绘制图形(线条、三角形、圆、弧、饼状图、柱状图、折线图等)和文本(绘制文字),3.读取或者生成PDF,4.绘制或者生成图片(图像)
Quartz2D绘图的主要步骤:1.获取context对象,2.向context对象中添加路径,3.把context中的图形渲染到设备上
注意:context和执行渲染的方法都应该放在自定义的view中
//在此方法中才能取得跟view相关联的context
//方法的触发时机:调用view的setNeedsDisplay或者setNeedsDisplayInRect:时
- (void)drawRect:(CGRect)rect{
//----rect指的就是绘图view的bounds
/*
//-----绘制路径
//1.获取图形上下文对象
CGContextRef ctx = UIGraphicsGetCurrentContext();
//2.创建路径
CGMutablePathRef path = CGPathCreateMutable();
//设置起点
CGPathMoveToPoint(path, NULL, 60, 60);
//加线
CGPathAddLineToPoint(path, NULL, 300, 300);
// 把路径添加到图形上下文中
CGContextAddPath(ctx, path);
//3.渲染
CGContextStrokePath(ctx);
//释放内存
CFRelease(path);
2.绘制三角形
// 获取context
CGContextRef ctx = UIGraphicsGetCurrentContext();
// 创建起点
CGContextMoveToPoint(ctx, 10, 10);
// 创建两条线段的终点
CGContextAddLineToPoint(ctx, 10, 90);
CGContextAddLineToPoint(ctx, 90, 90);
// 闭合path,让他自动回到原点
CGContextClosePath(ctx);
// 执行渲染
CGContextStrokePath(ctx);
3.绘制四边形
获取context对象
CGContextRef ctx = UIGraphicsGetCurrentContext();
// 添加路径
CGContextAddRect(ctx, CGRectMake(10, 10, 50, 50));
// 执行渲染
CGContextStrokePath(ctx);
4.绘制椭圆和圆
// 获取context
CGContextRef ctx = UIGraphicsGetCurrentContext();
// 添加椭圆,通过矩形的方式。给出矩形的起点坐标,长宽,绘制一个内切椭圆
CGContextAddEllipseInRect(ctx, CGRectMake(10, 10, 80, 50));
// 渲染
CGContextStrokePath(ctx);
5.绘制圆弧
// 获取context
CGContextRef ctx = UIGraphicsGetCurrentContext();
// 绘制扇形。参数:1+2,圆点坐标。参数3+4,起点和终点的弧度。参数5:0表示顺时针,1表示逆时针。
CGContextAddArc(ctx, 50, 50, 20, M_PI_4, M_PI, 1);
// 渲染
CGContextStrokePath(ctx);
6.画扇形
CGContextRef ctx = UIGraphicsGetCurrentContext();
// 绘制扇形。参数:1+2,圆点坐标。参数3+4,起点和终点的弧度。参数5:0表示顺时针,1表示逆时针。
CGContextAddArc(ctx, 50, 50, 20, M_PI_4, M_PI, 1);
CGContextClosePath(ctx);
// 渲染
CGContextStrokePath(ctx);
总结:从上面这几种绘制图形的方式可以看出,主要区别就在于,添加的方式-----上面已经重点标注
*/
}
题外篇
虽然本文的主旨是介绍Quartz2D的,但是好东西也是要分享的,AAChartKit: 精美的图表绘制控件,AAChartKit项目,是在流行的开源前端图表库Highcharts的基础上,封装的面向对象的,一组简单易用,极其精美的图表绘制控件.