CGAffineTransform

作者: Lonely__M | 来源:发表于2015-07-17 09:08 被阅读263次

    基本概念

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

    以上参数在矩阵中的表示为:

    |a b 0| |c d 0| |tx ty 1|
    

    为了把二维图形的变化统一在一个坐标系里,引入了齐次坐标的概念,即把一个图形用一个三维矩阵表示,其中第三列总是(0,0,1),用来作为坐标系的标准。所以所有的变化都由前两列完成。
    基本使用(配合动画)

    旋转[UIView animateWithDuration:0.5 delay:0.0f options:UIViewAnimationOptionCurveLinear animations:^{ [UIView setAnimationRepeatCount:1e100];//设置动画重复次数 box.transform = CGAffineTransformMakeRotation(M_PI/2);}completion:NULL];
    
    缩放
    [UIView animateWithDuration:0.5 delay:0.0f options:UIViewAnimationOptionCurveEaseOut animations:^{ box.transform = CGAffineTransformMakeScale(0.1, 1);}completion:NULL];
    
    移动
    [UIView animateWithDuration:0.5 delay:0.0f options:UIViewAnimationOptionCurveEaseOut animations:^{ box.transform = CGAffineTransformMakeTranslation(50, 50);}completion:NULL];
    
    串联
    [UIView animateWithDuration:0.5 delay:0.0f options:UIViewAnimationOptionCurveLinear animations:^{ CGAffineTransform transform2 = CGAffineTransformMakeTranslation(50, 50); CGAffineTransform transform1 = CGAffineTransformMakeScale(0.1, 1); box.transform = CGAffineTransformConcat(transform1, transform2);}completion:NULL];
    

    相关文章

      网友评论

        本文标题:CGAffineTransform

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