CGAffineTransform And CATransform3D

平时比较懒,好不容易有时间有兴致,那就学习下,算是小小的入门,

参考资料:
*[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();

};


你可能感兴趣的:(CGAffineTransform And CATransform3D)