Quartz2D基本图形绘制的3种方法详解

#pragma mark - 绘图的几种方式

#pragma mark - 绘图第三种方式

1.#pragma mark - 最原始的绘图方式

- (void)drawLine

{

// 1.获取图形上下文

// 目前我们所用的上下文都是以UIGraphics

// CGContextRef Ref:引用 CG:目前使用到的类型和函数 一般都是CG开头 CoreGraphics

CGContextRef ctx = UIGraphicsGetCurrentContext();

// 2.描述路径

// 创建路径

CGMutablePathRef path = CGPathCreateMutable();

// 设置起点

// path:给哪个路径设置起点

CGPathMoveToPoint(path, NULL, 50, 50);

// 添加一根线到某个点

CGPathAddLineToPoint(path, NULL, 200, 200);

// 3.把路径添加到上下文

CGContextAddPath(ctx, path);

// 4.渲染上下文

CGContextStrokePath(ctx);

}

2.#pragma mark - 绘图第二种方式

- (void)drawLine1

{

// 获取上下文

CGContextRef ctx = UIGraphicsGetCurrentContext();

// 描述路径

// 设置起点

CGContextMoveToPoint(ctx, 50, 50);

CGContextAddLineToPoint(ctx, 200, 200);

// 渲染上下文

CGContextStrokePath(ctx);

}

3.// 贝瑟尔路径

- (void)drawLine2

{

// UIKit已经封装了一些绘图的功能

// 创建路径

UIBezierPath *path = [UIBezierPath bezierPath];

// 设置起点

[path moveToPoint:CGPointMake(50, 50)];

// 添加一根线到某个点

[path addLineToPoint:CGPointMake(200, 200)];

// 绘制路径

[path stroke];

//    NSLog(@"%@",NSStringFromCGRect(rect));

}

绘制曲线的属性设置

1.//UIKit封装好的框架-贝塞尔曲线属性设置

- (void)drawUIBezierPathState

{

UIBezierPath *path = [UIBezierPath bezierPath];

[path moveToPoint:CGPointMake(50, 50)];

[path addLineToPoint:CGPointMake(200, 200)];

path.lineWidth = 10;

[[UIColor redColor] set];

[path stroke];

UIBezierPath *path1 = [UIBezierPath bezierPath];

[path1 moveToPoint:CGPointMake(0, 0)];

[path1 addLineToPoint:CGPointMake(30, 60)];

[[UIColor greenColor] set];

path1.lineWidth = 3;

[path1 stroke];

}

2.原生绘制的图形的具体属性设置

- (void)drawCtxState

{

// 获取上下文

CGContextRef ctx = UIGraphicsGetCurrentContext();

// 描述路径

//起点

CGContextMoveToPoint(ctx, 50, 50);

CGContextAddLineToPoint(ctx, 100, 50);

// 设置起点

CGContextMoveToPoint(ctx, 80, 60);

// 默认下一根线的起点就是上一根线终点

CGContextAddLineToPoint(ctx, 100, 200);

// 设置绘图状态,一定要在渲染之前

// 颜色

[[UIColor redColor] setStroke];

// 线宽

CGContextSetLineWidth(ctx, 5);

// 设置连接样式

CGContextSetLineJoin(ctx, kCGLineJoinBevel);

// 设置顶角样式

CGContextSetLineCap(ctx, kCGLineCapRound);

// 渲染上下文

CGContextStrokePath(ctx);

}

时间: 2024-11-05 23:33:30

Quartz2D基本图形绘制的3种方法详解的相关文章

57. 数对之差的最大值:4种方法详解与总结[maximum difference of array]

[本文链接] http://www.cnblogs.com/hellogiser/p/maximum-difference-of-array.html [题目] 在数组中,数字减去它右边的数字得到一个数对之差.求所有数对之差的最大值.例如在数组{2, 4, 1, 16, 7, 5, 11, 9}中,数对之差的最大值是11,是16减去5的结果. [分析] 看到这个题目,很多人的第一反应是找到这个数组的最大值和最小值,然后觉得最大值减去最小值就是最终的结果.这种思路忽略了题目中很重要的一点:数对之差

查看登陆系统用户的信息的三种方法详解

查看登陆系统用户的信息的三种方法详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.who这个命令显示可以谁在登陆,但是这个有很多的花式玩法,这个命令超简单 语法:who [OPTION]... [ FILE | ARG1 ARG2 ] 1.参数:-u,显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串. 例如: 2.参数:-m,此参数的效果和指定"a

spring获取webapplicationcontext,applicationcontext几种方法详解(转)

方法一:在初始化时保存ApplicationContext对象 代码: ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml"); ac.getBean("beanId"); 说明:这种方式适用于采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring的情况. 方法二:通过Spring提供的工具类获取ApplicationConte

Java构造和解析Json数据的两种方法详解一

原文链接:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/23/3096001.html 在www.json.org上公布了很多Java下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Json数据的方法示例. 用org.son构造和解析Json数据的方法详解请参见我下一篇博文:Java构造和解析Json数据的两种方法详解二 一.介绍 JSO

【转】Java构造和解析Json数据的两种方法详解一

Java构造和解析Json数据的两种方法详解一 在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Json数据的方法示例. 用org.son构造和解析Json数据的方法详解请参见我下一篇博文:Java构造和解析Json数据的两种方法详解二 一.介绍 JSON-lib包是一个beans,collections,maps,java arrays 和XML和J

Java构造和解析Json数据的两种方法详解一——json-lib

转自:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/23/3096001.html 在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Json数据的方法示例. 用org.son构造和解析Json数据的方法详解请参见我下一篇博文:Java构造和解析Json数据的两种方法详解二 一.介绍 JSON-

Java构造和解析Json数据的两种方法详解二——org.json

转自:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/24/3096437.html 在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面接着介绍用org.json构造和解析Json数据的方法示例.       用json-lib构造和解析Json数据的方法详解请参见我上一篇博文:Java构造和解析Json数据的两种方法详解一 一.介

Java构造和解析Json数据的两种方法详解二(转)

在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面接着介绍用org.json构造和解析Json数据的方法示例. 一.介绍 org.json包是另一个用来beans,collections,maps,java arrays 和XML和JSON互相转换的包,主要就是用来解析Json数据,在其官网http://www.json.org/上有详细讲解,有兴趣的可以去研究. 二.下载jar依赖包  

Java构造和解析Json数据的两种方法详解一(转)

在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Json数据的方法示例. 一.介绍 JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包,主要就是用来解析Json数据,在其官网http://www.json.org/上有详细讲解,有兴趣的可以去研究. 二.下载jar依赖包:可以去这