在上一篇博客中,介绍了有关CGContext相关操做方法,其中能够直接调用一些方法来进行所绘制图形的平移,缩放,翻转等变换。对于图形了几何变换,开发者也能够采用另外一种方式实现,CoreGraphics框架中提供了CGAffineTransform结构体,这个结构体中定义了图形变换的相关信息。框架
关于CGContext的相关内如博地址客以下:http://www.javashuo.com/article/p-mdgkzrqu-ec.html。函数
CGAffineTransform中定义的方法即意义列举以下:spa
//建立标准的变换矩阵 CGAffineTransform CGAffineTransformIdentity; //手动建立变换矩阵 CGAffineTransform CGAffineTransformMake(CGFloat a, CGFloat b, CGFloat c, CGFloat d, CGFloat tx, CGFloat ty); //建立平移变换 CGAffineTransform CGAffineTransformMakeTranslation(CGFloat tx, CGFloat ty); //建立缩放变换 CGAffineTransform CGAffineTransformMakeScale(CGFloat sx, CGFloat sy); //建立旋转变换 CGAffineTransform CGAffineTransformMakeRotation(CGFloat angle); //判断某个变化是不是来自标准矩阵的变换 bool CGAffineTransformIsIdentity(CGAffineTransform t); //对某个变换矩阵进行平移变换 CGAffineTransform CGAffineTransformTranslate(CGAffineTransform t, CGFloat tx, CGFloat ty); //对某个变换矩阵进行缩放变换 CGAffineTransform CGAffineTransformScale(CGAffineTransform t, CGFloat sx, CGFloat sy); //对某个变换矩阵进行旋转变换 CGAffineTransform CGAffineTransformRotate(CGAffineTransform t, CGFloat angle); //对某个变换矩阵进行翻转变换 CGAffineTransform CGAffineTransformInvert(CGAffineTransform t); //对两个变换矩阵进行计算 CGAffineTransform CGAffineTransformConcat(CGAffineTransform t1, CGAffineTransform t2); //比较两个变换矩阵是否相同 bool CGAffineTransformEqualToTransform(CGAffineTransform t1, CGAffineTransform t2); //获取应用变换后某点的坐标 CGPoint CGPointApplyAffineTransform(CGPoint point, CGAffineTransform t); //获取应用变换后某个区域的尺寸 CGSize CGSizeApplyAffineTransform(CGSize size, CGAffineTransform t); //获取应用变换后某个区域的位置和尺寸 CGRect CGRectApplyAffineTransform(CGRect rect, CGAffineTransform t);
上述变换方法能够直接做用于View,示例以下:.net
- (void)viewDidLoad { [super viewDidLoad]; UIImageView * view = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 200, 200)]; view.backgroundColor =[UIColor whiteColor]; view.image = [UIImage imageNamed:@"image"]; view.transform = CGAffineTransformRotate(CGAffineTransformIdentity, M_PI_4); [self.view addSubview:view]; }
专一技术,热爱生活,交流技术,也作朋友。code
——珲少 QQ群:203317592orm