CATransform3D解释

本文深入探讨了CATransform3D结构在实现视图透视效果时的关键作用,特别是如何通过调整m34值来模拟近大远小的视觉效果,以及D值对透视效果的影响。


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值