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);
1823354-758c22926b46eeb1.gif
6.修改tx的值
self.contenView.transform = CGAffineTransformMake(1, 0, 0, 1, 100, 0);
7.修改ty的值
self.contenView.transform = CGAffineTransformMake(1, 0, 0, 1, 0, 100);











网友评论