现在的位置: 首页 > 综合 > 正文

CATransform3D解释

2013年05月13日 ⁄ 综合 ⁄ 共 518字 ⁄ 字号 评论关闭

(CATransform3D解释)

struct	CATransform3D
{
	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(观察者)到投射面的距离。

抱歉!评论已关闭.