3D动画(一):基础3D动画
CG的前缀告诉我们,CGAffineTransform类型属于Core Graphics框架,CoreGraphics实际上是一个严格意义上的2D绘图API,并且CGAffineTransform仅仅对2D变换有效。
和CGAffineTransform类似,CATransform3D也是一个矩阵,但是和2x3的矩阵不同,CATransform3D是一个可以在3维空间内做变换的4x4的矩阵
和CGAffineTransform矩阵类似,Core Animation提供了一系列的方法用来创建和组合CATransform3D类型的矩阵,和Core Graphics的函数类似,但是3D的平移和旋转多处了一个z参数,并且旋转函数除了angle之外多出了x,y,z三个参数,分别决定了每个坐标轴方向上的旋转
//构造单位对角矩阵
CATransform3D transform = CATransform3DIdentity;
//3D效果,寻找透视角
transform.m34 = -1.0/500.0;
//改变xyz的值,注意参照物
transform = CATransform3DTranslate(transform, 0, 0,0);
//旋转,谁有值谁旋转
transform =CATransform3DRotate(transform, M_PI/4, 0, 1, 0);
//将改变后的transform赋值给原有的
self.view.layer.transform = transform;