矩阵本质-Transform函数详解

2018-10-29  本文已影响0人  似奔跑的野马

矩阵

1.CGRectApplyAffineTransform函数

CGRectrect =CGRectMake(0,1,100,100);

CGRect r = CGRectApplyAffineTransform(rect, CGAffineTransformMakeRotation(M_PI_2));

r =  CGRectMake(-101, 0, 100, 100);

将对应的rect应用矩阵转换,此时的顺时针旋转,是基于原点旋转。

2.CGAffineTransformConcat 函数

//A new affine transformation matrix. That is, t’ = t1*t2. 列主序矩阵 t1 * t2( 从左向右看,t1先生效)

    //先平移再缩放(x+tx) * scale
    self.view.transform = CGAffineTransformConcat(CGAffineTransformMakeTranslation(200, 300), CGAffineTransformMakeScale(0.5, 0.5));

3.执行的t1*t2 ,先缩放再平移

CGAffineTransformTranslate(CGAffineTransformMakeScale(0.5, 0.5), 200, 300);

关于矩阵,表示空间内对象运动的描述。把线性方程的表示形式,变成矩阵来表示,不同的表现方式。本质都是一样的。比如二维坐标
x' = ax +cy + t_x,
y'= bx + dy + t_y.
通过矩阵的表示:



这个就是仿射矩阵的表现形式。(注意这个是列主序矩阵)

struct CGAffineTransform {
  CGFloat a, b, c, d;
  CGFloat tx, ty;
};

矩阵函数理解

上一篇 下一篇

猜你喜欢

热点阅读