详解iOS的Core Animation框架中的CATransform3D图形变换

2020-01-06 15:38:49王旭

向Y轴旋转60度。

iOS,CATransform3D,Core,Animation

向Z轴旋转60度。

iOS,CATransform3D,Core,Animation

向 X轴,Y轴都旋转60度,就是沿着对角线旋转。

iOS,CATransform3D,Core,Animation
可以通过X,Y,Z轴同时变化,来旋转图像。
CATransform3D CATransform3DRotate (CATransform3D t, CGFloat angle, CGFloat x, CGFloat y, CGFloat z);
t:就是上一个函数。其他的都一样。
就可以理解为:函数的叠加,效果的叠加。
CATransform3D CATransform3DInvert (CATransform3D t);
翻转效果。

iOS,CATransform3D,Core,AnimationiOS,CATransform3D,Core,Animation

CGAffineTransform CATransform3DGetAffineTransform (CATransform3D t);
bool CATransform3DIsAffine (CATransform3D t);

仿射效果。
就是把一个 CATransform3D 对象转换成一个 CGAffineTransform 对象。
也就是把 CATransform3D 矩阵 转换成 CGAffineTransform 矩阵
变换函数同时提供了可以比较一个变换矩阵是否是单位矩阵,或者两个矩阵是否相等。
bool CATransform3DIsIdentity (CATransform3D t);
bool CATransform3DEqualToTransform (CATransform3D a, CATransform3D b);

也可以通过修改数据结构和键值来设置变换效果。
struct CATransform3D
               {

                 CGFloat m11, m12, m13, m14;

                           CGFloat m21, m22, m23, m24;

                           CGFloat m31, m32, m33, m34;

                                  CGFloat m41, m42, m43, m44;
}

可以直接修改 其中的一个值,来达到相同的效果。