首页 理论教育 知识拓展:CTM变换矩阵的旋转操作注意事项

知识拓展:CTM变换矩阵的旋转操作注意事项

时间:2023-06-23 理论教育 版权反馈
【摘要】:正值为逆时针旋转,负值为顺时针旋转。图形上下文中得到的新CTM,是transform矩阵乘以现有的CTM的结果。但要注意的是,这些方法一经调用马上生效。

知识拓展:CTM变换矩阵的旋转操作注意事项

如果要绘制一个倾斜的矩形,相信读者会想到通过角度计算每个顶点的位置,然后绘制出来。其实不必那么麻烦,Core Graphics为我们提供了一些简单的方法对这类变换进行处理:首先我们需要有一个概念,叫CTM(current transformation matrix)当前变换矩阵,然后通过这个矩阵将坐标系中的点重新映射到屏幕上,产生一定的变换。

这些方法在CGContext的实例中,如下所列:

1.rotate(by:)

旋转坐标系,by参数传入以弧度表示的角度,用于旋转指定上下文的坐标。正值为逆时针旋转,负值为顺时针旋转。

2.scaleBy(x:y:)

改变坐标系的比例,x参数为X轴放大倍数、y参数为Y轴放大倍数。(www.xing528.com)

3.translateBy(x:y:)

平移坐标系,x参数为X轴偏移值、y参数为Y轴偏移值。

4.concatenate(_:)

使用指定的矩阵转换坐标系,当我们调用这个函数时,它将通过矩阵的相乘来连接两个矩阵。矩阵连接的顺序很重要,因为矩阵乘法是不可交换的。图形上下文中得到的新CTM,是transform矩阵乘以现有的CTM的结果。

通过上述四种方法,我们便可以轻松处理一些坐标系上的变化。但要注意的是,这些方法一经调用马上生效。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈