Quartz2D_Day3 旋转、缩放、平移和图片剪切

矩形操作

原文图形的旋转、缩放和平移都是通过以下三个方法实现(统称:矩形操作):
1.旋转:CGContextRotateCTM(<#CGContextRef c#>, <#CGFloat angle#>)
2.缩放:CGContextScaleCTM(<#CGContextRef c#>, <#CGFloat sx#>, <#CGFloat sy#>)
3.平移: CGContextTranslateCTM(<#CGContextRef c#>, <#CGFloat tx#>, <#CGFloat ty#>)

注意:

1、设置矩阵操作必须要在添加图形之前,如果设置在添加图形之后的话,此时它已经画完了,无效
2、所有的矩形操作都是相对整个UIView的Layer层而言的,并不是单独针对当前绘制的图形操作

实例代码:

- (void)drawRect:(CGRect)rect
{
    //画四边形
    //获取图形上下文
    CGContextRef ctx=UIGraphicsGetCurrentContext();
    //矩阵操作
    //注意点:设置矩阵操作必须要在添加绘图信息之前
    //旋转45度
    CGContextRotateCTM(ctx, M_PI_4);
    
    //绘图
    CGContextAddRect(ctx, CGRectMake(150, 100, 100, 100));
    //渲染
    CGContextStrokePath(ctx);
}

图片剪切

Paste_Image.png

重要的指令:CGContextClip(ctx);

#pragma mark - 图片剪切
- (void)CircleImage{
    //1.获取图形上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    
    //2、画圆,以便以后指定可以显示图片的范围
//    CGContextAddArc(ctx, 250, 300, 50, 0, M_PI*2, 0);
    CGContextAddEllipseInRect(ctx, CGRectMake(250, 300, 100, 100));
    
    //3、指定上下文中可以显示内容的范围就是圆的范围
    CGContextClip(ctx);
    
    //4、再添加图片
    UIImage *image = [UIImage imageNamed:@"image.jpeg"];
    [image drawAtPoint:CGPointMake(200, 250)];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容