1.矩阵的基本知识:
struct CGAffineTransform
{
CGFloat a, b, c, d;
CGFloat tx, ty;
};
CGAffineTransform CGAffineTransformMake (CGFloat a,CGFloat b,CGFloat c,CGFloat d,CGFloat tx,CGFloat ty);
为了把二维图形的变化统一在一个坐标系里,引入了齐次坐标的概念,即把一个图形用一个三维矩阵表示,其中第三列总是(0,0,1),用来作为坐标系的标准。所以所有的变化都由前两列完成。
以上参数在矩阵中的表示为:
|a b 0|
|c d 0|
|tx ty 1|
运算原理:原坐标设为(X,Y,1);
|a b 0|
[X,Y, 1] |c d 0| = [aX + cY + tx bX + dY + ty 1] ;
|tx ty 1|
通过矩阵运算后的坐标[aX + cY + tx bX + dY + ty 1],我们对比一下可知:
第一种:

本文介绍了UIImage的矩阵变换原理,通过CGAffineTransform结构体解析矩阵运算,包括平移、缩放和旋转。文章详细阐述了如何通过设置矩阵元素实现二维图形的变换,并给出了一个UIImage矩阵变换的实际应用例子,展示了如何结合使用CGAffineTransformMakeTranslation、CGAffineTransformMakeScale和CGAffineTransformMakeRotation等函数来实现预期效果。

3276

被折叠的 条评论
为什么被折叠?



