CATransform3D解释

来源:互联网 发布:泛鹏天地知乎 编辑:程序博客网 时间:2024/05/18 14:43


(CATransform3D解释)

structCATransform3D{CGFloat m11(x缩放), m12(y切变), m13(旋转), m14();CGFloat m21(x切变), m22(y缩放), m23(), m24();CGFloat m31(旋转), m32(), m33(), m34(透视效果,要操作的这个对象要有旋转的角度,否则没有效果。正直/负值都有意义);CGFloat m41(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(观察者)到投射面的距离。