iOS开发CoreGraphics核心图形框架之四——变换函数

iOS开发CoreGraphics核心图形框架之四——变换函数

1、引言

    在上一篇博客中,介绍了有关CGContext相关操做方法,其中能够直接调用一些方法来进行所绘制图形的平移,缩放,翻转等变换。对于图形了几何变换,开发者也能够采用另外一种方式实现,CoreGraphics框架中提供了CGAffineTransform结构体,这个结构体中定义了图形变换的相关信息。框架

关于CGContext的相关内如博地址客以下:http://www.javashuo.com/article/p-mdgkzrqu-ec.html函数

2、使用CGAffineTransform相关函数进行绘制图形的几何变换

    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

相关文章
相关标签/搜索