平时比较懒,好不容易有时间有兴致,那就学习下,算是小小的入门,
参考资料:
*[CATransform3D vs. CGAffineTransform?](CATransform3D vs. CGAffineTransform? - Stack Overflow)
CGAffineTransform
CATransform3D的函数学习
对CoreGraphics和QuartzCore的理解
解释
一、 CGAffineTransform
是用于2D层面的,操作NSView、UIView或者其它2D Core Graphics元素,属于Core Graphics
框架
用途:视图的旋转,平移,缩放
方法:CGAffineTransformMake
//直接创建变换
struct CGAffineTransform {
CGFloat a, b, c, d;
CGFloat tx, ty;
};
/* Return the transform [ a b c d tx ty ]. */
CGAffineTransform CGAffineTransformMake(CGFloat a, CGFloat b,
CGFloat c, CGFloat d, CGFloat tx, CGFloat ty)
const CGAffineTransform CGAffineTransformIdentity
可以回到最初样式, 参数值 [1,0,0,1,0,0]
各个参数介绍:可以查看文档中的3*3矩阵
- a,c:对应x轴,及宽缩放值
- tx:x轴方向上偏移量
- b,c:对应轴,及高缩放值
- ty:y轴方向上偏移量
其他的方法不做介绍了,直译即可
二、 CATransform3D
是Core Animation的结构体,是用来做更复杂的关于CALayer的3D操作。CATransform3D有着与OPenGL模型视图矩阵相同的内部结构,原因在于Core Animation 是建立在OpenGL 之上的,CALayer是OpenGL结构的一种封装。
用途:3D画面变幻
struct CATransform3D
{
CGFloat m11(x缩放), m12(y切变), m13(旋转), m14();
CGFloat m21(x切变), m22(y缩放), m23(), m24();
CGFloat m31(旋转), m32( ), m33(), m34(透视效果,要操作的这个对象要有旋转的角度,否则没有效果。正值/负值都有意义);
CGFloat m41(x平移), m42(y平移), m43(z平移), m44();
};