码迷,mamicode.com
首页 > 其他好文 > 详细

CATransform3D中m34字段的取值含义

时间:2015-10-25 16:27:55      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

转载自:http://zhidao.baidu.com/link?url=OlVQoGOKIBmaXKgQisOLtzliTLPvreOOsRmny3yebA1Wb6-B3KtuKlRXmv0tO3y4S1rVjs8Ie-0EKSCfMzkN5V1mo2nmoSzFm33L9r7-_KG

 

我也不能解释的很清楚,说的不对的其他童鞋指正下:

transform的结构如下:
struct CATransform3D
{
CGFloat m11, m12, m13, m14;
CGFloat m21, m22, m23, m24;
CGFloat m31, m32, m33, m34;
CGFloat m41, m42, m43, 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(观察者)到投射面的距离。

CATransform3D中m34字段的取值含义

标签:

原文地址:http://www.cnblogs.com/gatsbywang/p/4908878.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!