矩阵
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;
};
网友评论