Quartz2D简单图形

这些天一直准备学绘图和核心动画这块,可一直找不到合适系统的教材,没有大纲,比较纠结,在网上搜了又搜,看着其他的博文写的

第一遍来学习绘制简单的图形

// 若想利用Quartz 2D在View上绘制信息,首先必须有图形上下文,用来保存绘图信息,输出目标。其次,图像上下文与View相关联(这时候图形上下文的输出目标即为关联的View)

// 1.为什么需要在drawrect中绘图? 因为在drawRect:方法中才能取得跟view相关联的图形上下文
// 2.drawRect:方法在什么时候被调用?
   //1.当view第一次显示到屏幕上时(被加到UIWindow上显示出来)
   //2.调用view的setNeedsDisplay或者setNeedsDisplayInRect:时
// 3.绘图顺序  后绘制的图形若与先绘制的图形发生重叠,后绘制的图形覆盖先绘制的图形

- (void)drawRect:(CGRect)rect {
    //画直线
    //获取图像上下文,在此方法调用获取的是layer的上下文
    CGContextRef context=UIGraphicsGetCurrentContext();
    //设置起点
    CGContextMoveToPoint(context, 20, 100);
    //设置终点
    CGContextAddLineToPoint(context, 50, 60);
    CGContextAddLineToPoint(context, 60, 80);
    //设置线条颜色 二选一
   /* [[UIColor yellowColor]set];//设置边框填充颜色都为同一种
    [[UIColor yellowColor] setStroke];//设置边框颜色
    [[UIColor yellowColor] setFill];// 设置填充颜色*/
    CGContextSetRGBStrokeColor(context, 0, 1.0, 0, 1.0);
    //设置填充颜色
    CGContextSetFillColorWithColor(context, [UIColor blueColor].CGColor);
    //设置线条宽度
    CGContextSetLineWidth(context, 5.0);
    //设置起点终点样式为圆角
    CGContextSetLineCap(context,  kCGLineCapRound);
    //设置线条转角样式为圆角
    CGContextSetLineJoin(context, kCGLineJoinRound);
    //渲染到图层上  不调用前面设置的不显示
    //线条边框渲染
    CGContextStrokePath(context);
    //填充 内部填充
//    CGContextFillPath(context);
    
    //画三角
    //设置三个点
    CGContextMoveToPoint(context, 30, 120);
    CGContextAddLineToPoint(context, 50, 200);
    CGContextAddLineToPoint(context, 200, 60);
     CGContextAddLineToPoint(context, 200, 80);
    //设置边框颜色
    CGContextSetRGBStrokeColor(context, 1.0, 1.0, 1.0, 1.0);
    //连接起点终点 无的话是只是几个点按顺序相连,起始点并未连接
    CGContextClosePath(context);
    CGContextStrokePath(context);
//    CGContextFillPath(context);
    
    //画矩形
    CGContextAddRect(context, CGRectMake(50, 60, 100, 80));
    [[UIColor blueColor] setStroke];
//    CGContextFillPath(context);
    CGContextStrokePath(context);
    
    //画圆 1参数 上下文 2、3参数 圆中心x、y坐标 4参数 半径 5、6参数起始角度 7参数 0顺时针 1逆时针
    CGContextAddArc(context, 60, 60, 20, 3.1415026/2, 0, 1);
    CGContextStrokePath(context);
    //画椭圆 圆是特殊的椭圆 所以可以用画椭圆的方法来画圆
    CGContextAddEllipseInRect(context, CGRectMake(80, 80, 100, 200));
    CGContextStrokePath(context);
    
    //画圆弧
    CGContextAddArc(context, 160, 160, 50, 3.1415026/2, 0, 1);
    CGContextSetRGBStrokeColor(context, 1.0, 1.0, 0.5, 1.0);
    CGContextClosePath(context);
    CGContextStrokePath(context);
}

 

转载于:https://www.cnblogs.com/5ishare/p/4401857.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值