(CATransform3D解释)
- structCATransform3D
- {
- CGFloatm11(x缩放),m12(y切变),m13(旋转),m14();
- CGFloatm21(x切变),m22(y缩放),m23(),m24();
- CGFloatm31(旋转),m32(),m33(),m34(透视效果,要操作的这个对象要有旋转的角度,否则没有效果。正直/负值都有意义);
- CGFloatm41(x平移),m42(y平移),m43(z平移),m44();
- };
首先要实现view(layer)的透视效果(就是近大远小),是通过设置m34的:
CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;
rotationAndPerspectiveTransform.m34 = 1.0 / -500;
m34负责z轴方向的translation(移动),m34= -1/D, 默认值是0,也就是说D无穷大,这意味layer in projection plane(投射面)和layer in world coordinate重合了。
D越小透视效果越明显。所谓的D,是eye(观察者)到投射面的距离。