摘要: CoreGraphics的功能非常强大,可以绘制各种图形;今天学习一下怎么绘制简单的点线面,记录学习。

一、导入coreGraphics.framework

二、绘制图形

1、绘制矩形

// 绘制矩形
- (void)drawRectangle {// 定义矩形的rectCGRect rectangle = CGRectMake(100, 290, 120, 25);// 获取当前图形,视图推入堆栈的图形,相当于你所要绘制图形的图纸CGContextRef ctx = UIGraphicsGetCurrentContext();// 在当前路径下添加一个矩形路径
    CGContextAddRect(ctx, rectangle);// 设置试图的当前填充色
    CGContextSetFillColorWithColor(ctx, [UIColor blackColor].CGColor);// 绘制当前路径区域
    CGContextFillPath(ctx);
}

2、绘制椭圆

// 绘制椭圆
- (void)drawEllipse {// 获取当前图形,视图推入堆栈的图形,相当于你所要绘制图形的图纸CGContextRef ctx = UIGraphicsGetCurrentContext();// 定义其rectCGRect rectangle = CGRectMake(10, 100, 300, 280);// 在当前路径下添加一个椭圆路径
    CGContextAddEllipseInRect(ctx, rectangle);// 设置当前视图填充色
    CGContextSetFillColorWithColor(ctx, [UIColor orangeColor].CGColor);// 绘制当前路径区域
    CGContextFillPath(ctx);
}

3、绘制三角形

// 绘制三角形
- (void)drawTriangle {// 获取当前图形,视图推入堆栈的图形,相当于你所要绘制图形的图纸CGContextRef ctx = UIGraphicsGetCurrentContext();// 创建一个新的空图形路径。
    CGContextBeginPath(ctx);/** *  @brief 在指定点开始一个新的子路径 参数按顺序说明* *  @param c 当前图形*  @param x 指定点的x坐标值 *  @param y 指定点的y坐标值**/CGContextMoveToPoint(ctx, 160, 220);/** *  @brief 在当前点追加直线段,参数说明与上面一样*/CGContextAddLineToPoint(ctx, 190, 260);CGContextAddLineToPoint(ctx, 130, 260);// 关闭并终止当前路径的子路径,并在当前点和子路径的起点之间追加一条线
    CGContextClosePath(ctx);// 设置当前视图填充色
    CGContextSetFillColorWithColor(ctx, [UIColor blackColor].CGColor);// 绘制当前路径区域
    CGContextFillPath(ctx);
}

4、绘制曲线

// 绘制曲线
- (void)drawCurve {// 获取当前图形,视图推入堆栈的图形,相当于你所要绘制图形的图纸CGContextRef ctx = UIGraphicsGetCurrentContext();// 创建一个新的空图形路径。
    CGContextBeginPath(ctx);/***  @brief 在指定点开始一个新的子路径 参数按顺序说明**  @param c 当前图形*  @param x 指定点的x坐标值*  @param y 指定点的y坐标值**/    CGContextMoveToPoint(ctx, 160, 100);/***  @brief 在指定点追加二次贝塞尔曲线,通过控制点和结束点指定曲线。*         关于曲线的点的控制见下图说明,图片来源苹果官方网站。参数按顺序说明*  @param c   当前图形*  @param cpx 曲线控制点的x坐标*  @param cpy 曲线控制点的y坐标*  @param x   指定点的x坐标值*  @param y   指定点的y坐标值**/CGContextAddQuadCurveToPoint(ctx, 160, 50, 190, 50);// 设置图形的线宽CGContextSetLineWidth(ctx, 20);// 设置图形描边颜色
    CGContextSetStrokeColorWithColor(ctx, [UIColor brownColor].CGColor);// 根据当前路径,宽度及颜色绘制线
    CGContextStrokePath(ctx);
}

曲线描绘示意图

5、绘制圆形

//以指定中心点绘制圆弧
- (void)drawCircleAtX:(float)x Y:(float)y {// 获取当前图形,视图推入堆栈的图形,相当于你所要绘制图形的图纸CGContextRef ctx = UIGraphicsGetCurrentContext();// 创建一个新的空图形路径。
    CGContextSetFillColorWithColor(ctx, [UIColor blackColor].CGColor);/***  @brief 在当前路径添加圆弧 参数按顺序说明*  *  @param c           当前图形*  @param x           圆弧的中心点坐标x*  @param y           曲线控制点的y坐标*  @param radius      指定点的x坐标值*  @param startAngle  弧的起点与正X轴的夹角,*  @param endAngle    弧的终点与正X轴的夹角*  @param clockwise   指定1创建一个顺时针的圆弧,或是指定0创建一个逆时针圆弧**/CGContextAddArc(ctx, x, y, 20, 0, 2 * M_PI, 1);//绘制当前路径区域
    CGContextFillPath(ctx);
}

6.画一条线

-(void)drawLine
{CGContextRef context = UIGraphicsGetCurrentContext(); //画一条线 CGContextSetRGBStrokeColor(context, 0.5, 0.5, 0.5, 0.5);//线条颜色 CGContextMoveToPoint(context, 20, 20); CGContextAddLineToPoint(context, 200,20); CGContextStrokePath(context);
}

三、在drawRect中调用

- (void)drawRect:(CGRect)rect {// 绘制椭圆
    [self drawEllipse];// 绘制三角
    [self drawTriangle];// 绘制矩形
    [self drawRectangle];// 绘制曲线
    [self drawCurve];// 绘制圆形[self drawCircleAtX:120 Y:170];[self drawCircleAtX:200 Y:170];}

效果如图:

转:http://my.oschina.net/joanfen/blog/150411

转载于:https://www.cnblogs.com/lihaibo-Leao/p/3267762.html

ios Quartz 各种绘制图形用法相关推荐

  1. IOS Quartz 各种绘制图形用法---实现画图片、写文字、画线、椭圆、矩形、棱形等...

    // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affec ...

  2. IOS Quartz 各种绘制图形用法---实现画图片、写文字、画线、椭圆、矩形、棱形等

    // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affec ...

  3. iOS动画效果、绘制图形

    文章转载自:http://www.cnblogs.com/kenshincui/p/3972100.html 概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥 ...

  4. iOS - Quartz 2D 画板绘制

    1.绘制画板 1.1 绘制简单画板 PaintBoardView.h @interface PaintBoardView : UIView@end PaintBoardView.m @interfac ...

  5. iOS 开发:绘制像素到屏幕

    转载:https://segmentfault.com/a/1190000000390012 译注:这篇文章虽然比较长,但是里面的内容还是很有价值的. 像素是如何绘制到屏幕上面的?把数据输出到屏幕的方 ...

  6. iOS开发:绘制像素到屏幕

    UI的底层原理,值得一看. 像素是如何绘制到屏幕上面的?把数据输出到屏幕的方法有很多,通过调用很多不同的framework和不同的函数.这里我们讲一下这个过程背后的东西.希望能够帮助大家了解什么时候该 ...

  7. html5 绘制图形,HTML5绘制几何图形

    绘制几何图形 var canvas = document.getElementById("myCanvas"); var ctx = canvas.getContext(" ...

  8. html5中Canvas、绘制线条模糊、常见绘制工具、绘制基本图形、绘制图片、面向对象的方式绘制图形图片、绘制文本、帧动画绘制

    Canvas容器: canvas标签用来定义图像的容器,必须配合脚本来绘制图像,canvas也运用于游戏开发.注意:canvas绘制图时会出现线条模糊情况,这是因为显示屏像素和canvas中定义的一个 ...

  9. 用html画一个企鹅图案的代码,HTML5 Canvas来绘制图形

    1.HTML5元素用于图形的绘制,通过脚本(通常是javascript)来完成. 2.标签只是图形容器,必须使用脚本来绘制图形. 3.可以通过多种方法通过Canvas绘制路径.盒.圆.字符以及添加图像 ...

最新文章

  1. 电脑CPU依然得看英特尔酷睿:新一代性能提升20%,AI能力翻5倍;网友:感谢AMD...
  2. 我脸都问绿了!二面竟然被问到 MySQL 时间类型 datetime、bigint 及 timestamp 的查询效率。。。
  3. usr/bin/expect方式免密码登录和发送文件脚本
  4. 关于Tomcat5.5中EL表达式无效的解决办法
  5. 华为手机充满有提醒吗_2020手机充电速度排名:最快21分钟充满,华为第15名
  6. django外调用url_Django url
  7. python中的累乘积_Python中的连续元素最大乘积
  8. 高中计算机试题一,職业高中高考计算机专业试卷1.doc
  9. wxpython 树菜单单击_请教怎么在wxpython调用windows系统的右键菜单(context menu)?
  10. 深度学习入门:一文详解BP神经网络
  11. JS高级程序设计(10)
  12. 【GitHub通过ssh方法下载详细配置过程】
  13. Eviews3种面板模型的选择-F检验操作详情
  14. 超详细电脑安装win10专业版
  15. 云硬盘备份 | 概览
  16. python函数装饰器一篇入魂
  17. IC面试常考题 Verilog三分频电路设计(占空比50%,三分之一,三分之二)
  18. JBI2.0 at JavaOne[zz]
  19. Oracle设置sql执行时的并行度和强制走索引
  20. 如何使用freeline

热门文章

  1. 计算机网络中的交换技术
  2. bzoj 1002: [FJOI2007]轮状病毒
  3. 汉诺塔问题(递归思想)(堆栈学习)
  4. js中事件捕获和事件冒泡
  5. matlab2c使用c++实现matlab函数系列教程-ismember函数
  6. Linux操作系统基本命令
  7. Quartus报错Error (170040): Can‘t place all RAM cells in design Info (170034)的解决办法
  8. 线性方程组的5种描述方式
  9. Selenium基础篇之5-第一个完整的自动化测试脚本
  10. 020-python函数和常用模块-文件操作