在看到这几个函数的第一感觉是什么 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度,代码所下所示:
- CGContextRotateCTM (myContext, radians(–45.));
|
|
CGContextScaleCTM (myContext, .5, .75);
|