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

Posted 华少不思议

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);

}

以上是关于Quartz2D基本图形绘制的3种方法详解的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发UI篇—Quartz2D使用(绘制基本图形)

R---plot()参数详解

Quart2D的基本介绍

Quartz2D

掌握Quartz2d的图形绘制API

真实感海洋的绘制:基于统计学模型的水面模拟方法详解