CGContextRef context = UIGraphicsGetCurrentContext(); //设置上下文

//画一条线

CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);//线条颜色

CGContextSetLineWidth(context, 5.0);//线条宽度

CGContextMoveToPoint(context, 20, 20); //开始画线, x,y 为开始点的坐标

CGContextAddLineToPoint(context, 300, 20);//画直线, x,y 为线条结束点的坐标

CGContextStrokePath(context); //开始画线

//绘制贝兹曲线

//贝兹曲线是通过移动一个起始点,然后通过两个控制点,还有一个中止点,调用CGContextAddCurveToPoint() 函数绘制

CGContextSetLineWidth(context, 2.0);

CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);

CGContextMoveToPoint(context, 10, 10);

CGContextAddCurveToPoint(context, 200, 50, 100, 400, 300, 400);

CGContextStrokePath(context);

//绘制连续的曲线

CGContextSetLineWidth(context, 5.0);

CGContextSetStrokeColorWithColor(context, [UIColor greenColor].CGColor);

CGContextMoveToPoint(context, 230, 150);//开始画线, x,y 为开始点的坐标

CGContextAddCurveToPoint(context, 310, 100, 300, 200, 220, 220);//画三次点曲线

CGContextAddCurveToPoint(context, 290, 140, 280, 180, 240, 190);//画三次点曲线

CGContextStrokePath(context);//开始画线

//绘制虚线

CGContextSetRGBStrokeColor(context, 0.1, 0.2, 0.3, 1);//线条颜色

float dashArray1[] = {3, 2};

CGContextSetLineDash(context, 0, dashArray1, 2);//画虚线,可参考http://blog.csdn.net/zhangao0086/article/details/7234859

CGContextMoveToPoint(context, 5, 70);//开始画线, x,y 为开始点的坐标

CGContextAddLineToPoint(context, 310, 70);//画直线, x,y 为线条结束点的坐标

CGContextStrokePath(context);//开始画线

//绘制虚曲线

CGContextSetRGBStrokeColor(context, 0.3, 0.2, 0.1, 1);//线条颜色

float dashArray2[] = {3, 2, 10};

CGContextSetLineDash(context, 0, dashArray2, 3);//画虚线

CGContextMoveToPoint(context, 5, 90);//开始画线, x,y 为开始点的坐标

CGContextAddCurveToPoint(context, 200, 50, 100, 400, 300, 400);

CGContextStrokePath(context);//开始画线

//绘制连续的曲线

CGContextSetLineWidth(context, 5.0);

float dashArray3[] = {3, 2, 10, 20, 5};

CGContextSetLineDash(context, 0, dashArray3, 5);//画虚线

CGContextSetStrokeColorWithColor(context, [UIColor greenColor].CGColor);

CGContextMoveToPoint(context, 5, 400);//开始画线, x,y 为开始点的坐标

CGContextAddCurveToPoint(context, 50, 200, 80, 300, 100, 220);//画三次点曲线

CGContextAddQuadCurveToPoint(context, 150, 100, 200, 200);//画二次点曲线

CGContextAddCurveToPoint(context, 240, 400, 10, 50, 300, 300);//画三次点曲线

CGContextStrokePath(context);//开始画线

//画一个方形图形 没有边框

CGContextSetRGBFillColor(context, 0, 0.25, 0, 0.5); //方框的填充色

CGContextFillRect(context, CGRectMake(5, 150, 100, 100)); //画一个方框

//画弧线

CGContextSetRGBStrokeColor(context, 0.3, 0.4, 0.5, 1);//线条颜色

CGContextAddArc(context, 180, 200, 50, 0, 180*(M_PI/180), 0);

CGContextStrokePath(context);//开始画线

//画方形边框

CGContextRef context5 = UIGraphicsGetCurrentContext(); //设置上下文

CGContextSetLineWidth(context5, 3.0);

CGContextSetRGBStrokeColor(context5, 0.8, 0.1, 0.8, 1);

CGContextStrokeRect(context5, CGRectMake(5, 5, 300, 400));//画方形边框, 参数2:方形的坐标。

//画椭圆

CGRect aRect= CGRectMake(80, 80, 160, 100);

CGContextSetRGBStrokeColor(context, 0.6, 0.9, 0, 1.0);

CGContextSetLineWidth(context, 3.0);

CGContextAddEllipseInRect(context, aRect); //椭圆, 参数2:椭圆的坐标。

CGContextDrawPath(context, kCGPathStroke);

//画实心圆

CGContextFillEllipseInRect(context, CGRectMake(95, 195, 200.0, 100));//画实心圆,参数2:圆坐标。可以是椭圆

//画一个菱形

CGContextSetLineWidth(context, 2.0);

CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);

CGContextMoveToPoint(context, 100, 100);

CGContextAddLineToPoint(context, 150, 150);

CGContextAddLineToPoint(context, 100, 200);

CGContextAddLineToPoint(context, 50, 150);

CGContextAddLineToPoint(context, 100, 100);

CGContextStrokePath(context);

//填充了一段路径:

CGContextMoveToPoint(context, 100, 100);

CGContextAddLineToPoint(context, 150, 150);

CGContextAddLineToPoint(context, 100, 200);

CGContextAddLineToPoint(context, 50, 150);

CGContextAddLineToPoint(context, 100, 100);

CGContextSetFillColorWithColor(context, [UIColor redColor].CGColor);

CGContextFillPath(context);

iOS CGContextRef 画图小结的更多相关文章

  1. iOS CGContextRef画图时的常用方法

    UIView的drawRect方法 CoreGraphics绘图 综述:描述系统会调用UIView的drawRect方法,所以coreGraphics的所有实现代码放在该函数内,setNeedsDis ...

  2. iOS Quartz2D画图

    对于刚接触Quartz2D的同学来说,先了解 上下文 的概念,再从最基础的画线来具体体验Quartz2D的画图步骤 介绍Quart2D :是苹果官方的二维(平面)绘图引擎,同时支持iOS和macOS系 ...

  3. iOS GCD 编程小结

    一.简单介绍 1.GCD简介? 全称是Grand Central Dispatch,可译为“牛逼的中枢调度器” 纯C语言,提供了非常多强大的函数 2.GCD优势 GCD是苹果公司为多核的并行运算提出的 ...

  4. iOS静态库小结--(yoowei)

    准备知识: 1.什么是库? 库是程序代码的集合,是共享程序代码的一种方式 2.根据源代码的公开情况,库可以分为2种类型 a.开源库 公开源代码,能看到具体实现 ,比如SDWebImage.AFNetw ...

  5. iOS CGContextRef 画一条直线,仅仅是画一条直线

    今天周末休息,想好好补补课,无奈,弄了一上午,全部都是半边拉块的demo,有一种深深的挫败感. 中午睡醒一觉后,又看了一集“奔跑吧兄弟”,然后一下午时间就过去了. 仔细一想,应该是我的补课方法不对:要 ...

  6. iOS推送小结(证书的生成、客户端的开发、服务端的开发)

    1.推送过程简介 1.1.App启动过程中,使用UIApplication::registerForRemoteNotificationTypes函数与苹果的APNS服务器通信,发出注册远程推送的申请 ...

  7. ios - GCD简单小结

    首先GCD两个名词: 队列 同步异步. 队列: 任务放到队列,队列中的任务执行方式取决于执行队列中任务的方式---同步异步. 串行队列: 任务顺序执行,可以叫阻塞队列.只有前面任务完成才执行后面的. ...

  8. Python科学画图小结

    Python画图主要用到matplotlib这个库.具体来说是pylab和pyplot这两个子库.这两个库可以满足基本的画图需求,而条形图,散点图等特殊图,下面再单独具体介绍. 首先给出pylab神器 ...

  9. IOS文件存储小结

    转自:http://tyragain.lofter.com/post/84706_c1503 首选项设置存储 NSUserDefaults 以及通过它控制的SettingBundle  NSUserD ...

随机推荐

  1. lc面试准备:Remove Duplicates from Sorted List II

    1 题目 Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct ...

  2. WPF 界面布局DockPanel stackPanel WrapPanel 元素内容以及位置控制

    1 DockPanel 1) 默认充满整个窗口. 2) 最后一个出现的部分,默认充满剩余空间. 3) 非最后一个出现的部分,根据其中内容,进行分配空间s 2 StackPanel 实现居左,居右,居中 ...

  3. HDU 5933 ArcSoft's Office Rearrangement 【模拟】(2016年中国大学生程序设计竞赛(杭州))

    ArcSoft's Office Rearrangement Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K ...

  4. maya 操作自我整理(一)

    绘制曲线时的点的控制 当我们在使用CV Curve Tool或者EP Curve Tool创建NURBS曲线的过程中,按下"Insert"键,配合键盘上的上.下箭头方向键,可以自由 ...

  5. iOS中懒加载

    1.懒加载基本 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其get方法. 注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化 ...

  6. ACM2096

    #include<iostream> int main() { using namespace std; int a,b,count; cin>>count; while(co ...

  7. SRM 440(1-250pt, 1-500pt)

    DIV1 250pt 题意:小球从一段折线斜坡上滚下来,告诉所用时间,求重力加速度. 解法:二分答案模拟即可. tag:二分,simulation // BEGIN CUT HERE /* * Aut ...

  8. oracle空表导不出来

    在oracle 11g r2中,使用exp有时候会导不出空的表,原因是这些表没有分配空间,手工分配空间即可导出. ----查询当前用户下的所有空表: select table_name from us ...

  9. HTTP协议的特点

    HTTP协议的主要特点可概括如下: 1.支持客户/服务器模式.2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径.请求方法常用的有GET.HEAD.POST.每种方法规定了客户与服务器联系的 ...

  10. Maven实现Web应用集成測试自己主动化 -- 部署自己主动化(WebTest Maven Plugin)

    上篇:Maven实现Web应用集成測试自己主动化 -- 測试自己主动化(WebTest Maven Plugin) 之前介绍了怎样在maven中使用webtest插件实现web的集成測试,这里有个遗留 ...