ios-矩阵旋转缩放平移操作

矩阵的旋转、缩放、平移操作一定是在添加路径到上下文中之前进行的否则是无效的。简单来说就是如下的操作

 //1、获取上下文
    CGContextRef ctx=UIGraphicsGetCurrentContext();
    //进行矩阵的旋转操作
    //CGContextRotateCTM(ctx, M_PI_4);
    //缩放操作,就是x缩短为0.5,y缩短为0.5
    //CGContextScaleCTM(ctx, 0.5, 0.5);
    //平移操作,原点会向下和右偏移
    CGContextTranslateCTM(ctx, 20, 20);
    //先画一个圆
    CGContextAddArc(ctx, 150,150 , 100, 0, 2*M_PI, 1);
    CGContextMoveToPoint(ctx, 0, 0);
    CGContextAddLineToPoint(ctx, 300, 300);
    
    //设置下线宽
    CGContextSetLineWidth(ctx, 10);
    //渲染
    CGContextStrokePath(ctx);
其实就是先把上下文旋转,缩放,平移了,然后在取绘制的所有的图形就是在旋转,缩放,平移之后的上下文中进行了。


关于平移CGContextTranslateCTM的效果如下图所示,我这里所取的x和y的偏移取的是-30,先看原来的效果

设置了下面这行的代码

CGContextTranslateCTM(context, -30, -30);

得到的是这样的效果


为了方便观察旋转的操作,我们这里把图像变成充满整个黑色框框大小,现在的图像


然后我们再进行设置旋转

CGContextRotateCTM(context, M_PI_4);

这里需要注意的是在Quartz坐标下正数为逆时针旋转,负数为顺时针旋转。而在UIKit坐标下正数为顺时针旋转,负数为逆时针旋转。

所以效果如下所示

下一个就是缩小x和y都缩小0.5

CGContextScaleCTM(context, 0.5, 0.5);


其实从这里可以看出默认情况下context其实都是基于左上角的原点进行设置的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值