CATransform3D解释

(CATransform3D解释)


  1. structCATransform3D
  2. {
  3. CGFloatm11(x缩放),m12(y切变),m13(旋转),m14();
  4. CGFloatm21(x切变),m22(y缩放),m23(),m24();
  5. CGFloatm31(旋转),m32(),m33(),m34(透视效果,要操作的这个对象要有旋转的角度,否则没有效果。正直/负值都有意义);
  6. CGFloatm41(x平移),m42(y平移),m43(z平移),m44();
  7. };



首先要实现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(观察者)到投射面的距离。

你可能感兴趣的:(transform)