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;
};
  • m34透视效果,一般通过-1.0/d来应用透视效果,d代表想象中视觉相机与屏幕之间的距离,以像素为单位,通常500-1000j就已经很好了。
    注:使用3D变换的时候要注意灭点,统一设置所有图层共享一个灭点
    CATransform3D perspective = CATransform3DIdentity;
    perspective.m34 = - 1.0 / 500.0;
    self.containerView.layer.sublayerTransform = perspective;

  • CATransform3DMakeTranslation (CGFloat tx, CGFloat ty, CGFloattz)
    tx:X轴偏移位置,往下为正数。
    ty:Y轴偏移位置,往右为正数。
    tz:Z轴偏移位置,往外为正数。

  • CATransform3DMakeScale(CGFloat sx, CGFloat sy, CGFloat sz);
    sx:X轴缩放,代表一个缩放比例,一般都是0 --- 1 之间的数字。
    sy:Y轴缩放。
    sz:整体比例变换时,也就是m11(sx)==m22(sy)时,若m33(sz)>1,图形整体缩小,若0<1,图形整体放大,若m33(sz)<0,发生关于原点的对称等比变换。

  • CATransform3DMakeRotation(CGFloat angle, CGFloat x, CGFloat y, CGFloat z);
    angle:旋转的弧度,所以要把角度转换成弧度:角度* M_PI / 180。
    x:向X轴方向旋转。值范围-1--- 1之间
    y:向Y轴方向旋转。值范围-1 ---1之间
    z:向Z轴方向旋转。值范围-1 ---1之间

  • CATransform3DContact 把动作combine在一起

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 图层的几个坐标系 对于iOS来说,坐标系的(0,0)点在左上角,就是越往下,Y值越大。越往右,X值越大。 一个图层...
    LeeMystique阅读 16,710评论 1 53
  • 关于图层的几个坐标系。对于ios来说,坐标系的(0,0)点在左上角,就是越往下,Y值越大。越往右,X值越大。一个图...
    petry阅读 1,911评论 0 3
  • 本人处于学习写的这篇文章,有不足之处望多多指教。我是看了这了这篇文章,(相信大家恨到很多类似的版本的)然后再加自己...
    seanward阅读 2,070评论 0 5
  • structCATransform3D {CGFloatm11(x缩放), m12(y切变), m13(旋转), ...
    lucifrom_long阅读 5,535评论 1 5
  • 能够在双十一保持足够的理性的唯一原因是:工资没发。 然而这不是最惨的:工资即使发了,也不够我挥霍的。 即使是一台梦...
    蓝色钟城阅读 163评论 0 0