struct CATransform3D
{
CGFloat m11(x縮放), m12(y切變), m13(旋轉(zhuǎn)), m14;
CGFloat m21(x切變), m22(y縮放), m23, m24;
CGFloat m31(旋轉(zhuǎn)), m32, m33, m34(透視效果韩容,要操作的對象要有旋轉(zhuǎn)的角度扣唱,不然沒效果);
CGFloat m41(x平移), m42(y平移), m43(z平移), m44;
};
m34透視效果藕坯,一般通過-1.0/d來應(yīng)用透視效果,d代表想象中視覺相機(jī)與屏幕之間的距離噪沙,以像素為單位炼彪,通常500-1000j就已經(jīng)很好了。
注:使用3D變換的時候要注意滅點(diǎn)正歼,統(tǒng)一設(shè)置所有圖層共享一個滅點(diǎn)
CATransform3D perspective = CATransform3DIdentity;
perspective.m34 = - 1.0 / 500.0;
self.containerView.layer.sublayerTransform = perspective;CATransform3DMakeTranslation (CGFloat tx, CGFloat ty, CGFloattz)
tx:X軸偏移位置辐马,往下為正數(shù)。
ty:Y軸偏移位置局义,往右為正數(shù)喜爷。
tz:Z軸偏移位置,往外為正數(shù)萄唇。CATransform3DMakeScale(CGFloat sx, CGFloat sy, CGFloat sz);
sx:X軸縮放檩帐,代表一個縮放比例,一般都是0 --- 1 之間的數(shù)字另萤。
sy:Y軸縮放湃密。
sz:整體比例變換時,也就是m11(sx)==m22(sy)時四敞,若m33(sz)>1勾缭,圖形整體縮小,若0<1目养,圖形整體放大俩由,若m33(sz)<0,發(fā)生關(guān)于原點(diǎn)的對稱等比變換癌蚁。CATransform3DMakeRotation(CGFloat angle, CGFloat x, CGFloat y, CGFloat z);
angle:旋轉(zhuǎn)的弧度幻梯,所以要把角度轉(zhuǎn)換成弧度:角度* M_PI / 180兜畸。
x:向X軸方向旋轉(zhuǎn)。值范圍-1--- 1之間
y:向Y軸方向旋轉(zhuǎn)碘梢。值范圍-1 ---1之間
z:向Z軸方向旋轉(zhuǎn)咬摇。值范圍-1 ---1之間CATransform3DContact 把動作combine在一起