mthoutai

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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


posted on 2017-06-03 17:06  mthoutai  阅读(265)  评论(0编辑  收藏  举报