你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

CATransform3D解释

2022/5/13 20:09:56

原文网址:点击打开链接

(CATransform3D解释)

[html] view plain copy
  1. struct  CATransform3D  
  2. {  
  3.     CGFloat m11(x缩放), m12(y切变), m13(旋转), m14();  
  4.   
  5.     CGFloat m21(x切变), m22(y缩放), m23(), m24();  
  6.   
  7.     CGFloat m31(旋转), m32(), m33(), m34(透视效果,要操作的这个对象要有旋转的角度,否则没有效果。正直/负值都有意义);  
  8.   
  9.     CGFloat m41(x平移), m42(y平移), m43(z平移), m44();  
  10. };  



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