天天看点

Quartz2D-二维画图引擎 、自己定义UI控件

//
//  MyDraw.m
//  绘图

#import "MyDraw.h"

@implementation MyDraw

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

- (void)drawRect:(CGRect)rect {

    draw4Rect();
    //drawTriangle();

}

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

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

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


    //设置主要的颜色
    CGContextSetRGBFillColor(ctx, 0, 0, 1, 1);

    //结合UI 能够更简单的设置颜色
    [[UIColor redColor]setFill];

    //set :同一时候设置实心 空心颜色
    //setStroke 设置空心颜色
    // setFill 设置实心颜色
    [[UIColor whiteColor]set];

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

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

    //设置头尾部样式
    CGContextSetLineCap(ctx, kCGLineCapRound);

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

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


    //设置转折点的样式
    //CGContextSetLineJoin(ctx, kCGLineJoinBevel);
    CGContextSetLineJoin(ctx, kCGLineJoinRound);

    CGContextMoveToPoint(ctx, 200, 190);

    CGContextAddLineToPoint(ctx, 150, 40);
    CGContextAddLineToPoint(ctx, 110, 60);
    //设置线条的宽度

    CGContextSetLineWidth(ctx, 10);


    //设置颜色
    CGContextSetRGBStrokeColor(ctx, 1, 0, 0, 1);


    //CGContextAddLineToPoint(ctx, 10, 10);

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

    //3.渲染显示到view 上面
    //以空心的形式画出来
    CGContextStrokePath(ctx);//仅仅记录当前的颜色状态  我们要是向让两根线条不一样
    //那么我们须要渲染两次
    //分开几个图形 多渲染几次就能够了

}


//设置颜色



@end