CGAffineTransform
是用于绘制2D图形的一个3x3的仿射变换矩阵,它采用的是二维坐标系,向右为x轴正方形,向下为y轴正方向。
1(a) 0(b) 0
仿射变换 transform: 0(c) 1(d) 0
0(tx) 0(ty) 1
CGAffineTransformMake(a, b, c, d, tx, ty)
默认值 CGAffineTransformMake(1, 0, 0, 1, 0, 0);
代码:
CGAffineTransformMake (CGFloat a, CGFloat b, CGFloat c, CGFloat d, CGFloat tx, CGFloat ty);
因为矩阵的第三列一直是[0, 0, 1]
,故只有前面两列值有效。
tx
: 控制在x轴方向上的平移。
ty
: 控制在y轴方向上的平移。
a
: 控制在x轴方向上的缩放。
d
: 控制在y轴方向上的缩放。
a、b、c、d
共同控制旋转。
示例:
- 原图:
self.contenView.transform = CGAffineTransformMake(1, 0, 0, 1, 0, 0);

- 修改a的值
self.contenView.transform = CGAffineTransformMake(2, 0, 0, 1, 0, 0);

- 修改b的值
self.contenView.transform = CGAffineTransformMake(1, 1, 0, 1, 0, 0);

- 修改c的值
self.contenView.transform = CGAffineTransformMake(1, 0, 1, 1, 0, 0);

5.修改d的值
self.contenView.transform = CGAffineTransformMake(1, 0, 0, 2, 0, 0);

6.修改tx的值
self.contenView.transform = CGAffineTransformMake(1, 0, 0, 1, 100, 0);

7.修改ty的值
self.contenView.transform = CGAffineTransformMake(1, 0, 0, 1, 0, 100);

网友评论