C语言api绘图,CoreGraphics绘图API

画布:

CGContextSaveGState(ctx); //保存画布上的绘图信息

CGContextRestoreGState(ctx); //清空画布上的绘图信息

CGContextClip(ctx);//指定上下文中可以显示内容的范围,需要在绘制内容前调用

渲染

CGContextStrokePath(ctx); //渲染,空心的

CGContextFillPath(ctx); //渲染,实心的,但线条无法渲染为实心

绘制对象:

NSString、UIColor、UIImage、UIBreizePath等UIKit框架对象

 
 

[str drawAtPoint:CGPointMake(10, 10) withAttributes:md]; //绘制文字

[str drawInRect:CGRectMake(50, 50, 100, 100) withAttributes:nil]; //绘制文字

 
 

[image drawInRect:CGRectMake(0, 0, 200, 200)]; //绘制图片,拉伸原有图片

[image drawAtPoint:CGPointMake(100, 100)]; //绘制图片

[image drawAsPatternInRect:CGRectMake(0, 0, 320, 480)]; //绘制图片,平铺小图

 
 

[aView.layer renderInContext:ctx]; //绘制视图内容

Quarts2D绘图对象

 
 
 
 

CGContextMoveToPoint(ctx, 20, 100); //绘制线条,设置起点

CGContextAddLineToPoint(ctx, 100, 320); //绘制线条,设置终点

CGContextClosePath(ctx); //关闭线条起点和终点

CGContextAddRect(ctx, CGRectMake(20, 20, 150, 100)); //画四边形

CGContextAddArc(ctx, 100, 100, 50, 0, 2 * M_PI, 0); // 画圆、画圆弧

CGContextAddEllipseInRect(ctx, CGRectMake(50, 100, 100, 230)); //画椭圆

 
 

CGMutablePathRef path=CGPathCreateMutable();

CGPathMoveToPoint(path, NULL, 20, 20);

CGPathAddLineToPoint(path, NULL, 200, 300);

CGContextAddPath(ctx, path);

CGPathRelease(path);

CFRelease(path);

 
 

矩阵操作:

CGContextRotateCTM(ctx, M_PI_4); //旋转是对整个layer旋转的。先旋转再画图

CGContextScaleCTM(ctx, 0.5, 1.5); //缩放

CGContextTranslateCTM(ctx, 50, 100); //平移

绘图状态

 
 

CGContextSetLineWidth(ctx, 12); //线条的宽度

CGContextSetLineCap(ctx,kCGLineCapRound); //线条起点和终点的样式为圆角

CGContextSetLineJoin(ctx, kCGLineJoinRound); //线条的转角的样式为圆角

 
 

[[UIColor blueColor] setStroke]; //绘图的颜色,设置空心

[[UIColor purpleColor] setFill]; //绘图的颜色,设置实心

[[UIColor greenColor] set]; //绘图的颜色,同时设置了实心和空心

CGContextSetRGBStrokeColor(ctx, 1.0, 0, 0, 1.0);//绘图的颜色,设置空心

CGContextSetRGBFillColor(ctx, 1.0, 0, 0, 1.0);//绘图的颜色,设置实心

图片处理:

圆形处理:设置context为指定的圆形,然后将图片绘制到context上即可。

动画:

调用setNeedsLayout就可以刷新;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值