您的位置:首页 > 其它

Quartz2D二维绘图引擎

2015-08-23 16:01 295 查看
Quartz2D二维绘图引擎

这个二维绘图引擎的功能非常强大

一般苹果公司xcode 提供给我们的一些UI控件不能满足我们的需求

所以我们会自定义控件

xcode 提供的所有控件都是由这个绘图引擎画出来的

我们可以自定义一些控件,完成我们想要完成的一些特定的功能

从而解决一些系统自定义控件实现不了的功能

1.基本图形绘制

* 线段(线宽、线段样式)

* 矩形(空心、实心、颜色)

* 三角形、梯形等形状

* 椭圆\圆

* 圆弧

* 文字绘制

* 图片绘制(pattern)

* 图形上下文栈

下面是简单的 三角形和矩形的绘制

图形的绘制是用纯C写出来的,没有面向对象的思想

所以大家理解起来一定要区分!

//
//  MyDraw.m
//  画图

@implementation MyDraw

//Quartz2D  是一个二维绘图引擎
//自定义UI控件
//裁剪图片

- (void)drawRect:(CGRect)rect {

draw4Rect();

}

void draw4Rect()
{
//获得图形上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();

//画图形
CGContextAddRect(ctx, CGRectMake(10, 10, 100, 100));

//绘制图形
//CGContextStrokePath(ctx);

//实的图形
CGContextFillPath(ctx);
}
void drawTriangle()
{

// Drawing code
//1.获得图形上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();

//2.拼接图形
CGContextMoveToPoint(ctx, 10, 10);

//添加一条线段到
CGContextAddLineToPoint(ctx, 100, 100);

CGContextAddLineToPoint(ctx, 150, 40);

//CGContextAddLineToPoint(ctx, 10, 10);

//连接起点和终点
CGContextClosePath(ctx);
//CGContextMoveToPoint(ctx, 20, 20);

//3.渲染显示到view 上面
//以空心的形式画出来
CGContextStrokePath(ctx);
}

@end


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: