iOS---Quartz2D

 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的基础上,封装的面向对象的,一组简单易用,极其精美的图表绘制控件.

你可能感兴趣的:(iOS---Quartz2D)