CGContextTranslateCTM,CGContextScaleCTM,CGContextRotateCTM详解

在看到这几个函数的第一感觉是什么 translate 移动 scale 缩放 rotate 旋转 ,对,这就是我的第一感觉,先知道这些方法的意思是什么,至于怎么用,从文档中我们也不难发现,是这样的:

首先跟大家说一个注意点,以变换CTM之前(也就是在调用这些方法之前),我们需要保存图形状态(调用之前我说的那你个 CGContextSaveGState(<#CGContextRef  _Nullable c#>)),以便绘制后能恢复( CGContextRestoreGState(<#CGContextRef  _Nullable c#>))。

在本节中,我们将介绍与CTM函数相关的四种操作--平移、旋转、缩放。
假设我们提供了一个可用的图形上下文、一个指向可绘制图像的矩形的指针和一个可用的CGImage对象,则下面一行代码绘制了一个图像。在阅读了本节余下的部分后,我们将看到如何将变换应用于图像。

CGContextDrawImage (myContext, rect, myImage);



平移变换根据我们指定的x, y轴的值移动坐标系统的原点。我们通过调用CGContextTranslateCTM函数来修改每个点的x, y坐标值。意思是该图片会沿x轴移动了100个单位,沿y轴移动了50个单位。具体代码如下:

CGContextTranslateCTM (myContext, 100, 50);



旋转变换根据指定的角度来移动坐标空间。我们调用CGContextRotateCTM函数来指定旋转角度(以弧度为单位)。意思是图片会以原点(左下角)为中心旋转45度,代码所下所示:

  1. CGContextRotateCTM (myContext, radians(–45.));





缩放操作根据指定的x, y因子来改变坐标空间的大小,从而放大或缩小图像。x, y因子的大小决定了新的坐标空间是否比原始坐标空间大或者小。另外,通过指定x因子为负数,可以倒转x轴,同样可以指定y因子为负数来倒转y轴。通过调用CGContextScaleCTM函数来指定x, y缩放因子。图5-5显示了指定x因子为0.5,y因子为0.75后的缩放效果。代码如下:

CGContextScaleCTM (myContext, .5, .75);




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值