美文网首页
CGAffineTransform

CGAffineTransform

作者: 开发者老岳 | 来源:发表于2020-01-10 11:39 被阅读0次

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共同控制旋转。

示例:

  1. 原图:
self.contenView.transform = CGAffineTransformMake(1, 0, 0, 1, 0, 0);
  1. 修改a的值
self.contenView.transform = CGAffineTransformMake(2, 0, 0, 1, 0, 0);
  1. 修改b的值
self.contenView.transform = CGAffineTransformMake(1, 1, 0, 1, 0, 0);
  1. 修改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);

参考:https://www.jianshu.com/p/c40e4bbb3ae2

相关文章

网友评论

      本文标题:CGAffineTransform

      本文链接:https://www.haomeiwen.com/subject/kequactx.html