美文网首页
CALyer 3D变换

CALyer 3D变换

作者: Maple_chang | 来源:发表于2016-03-03 13:33 被阅读43次

文章摘自https://zsisme.gitbooks.io/ios-/content/chapter5/3d-transform.html

5.7.jpeg

CATransform3DMakeRotation对视图内的图层绕Y轴做了45度角的旋转

  CATransform3D transform = CATransform3DMakeRotation(M_PI_4, 0, 1, 0);
    self.layerView.layer.transform = transform;
5.8.jpeg

CATransform3D的m34元素,用来做透视
m34的默认值是0,我们可以通过设置m34为-1.0 / d来应用透视效果,d代表了想象中视角相机和屏幕之间的距离,以像素为单位,那应该如何计算这个距离呢?实际上并不需要,大概估算一个就好了。
因为视角相机实际上并不存在,所以可以根据屏幕上的显示效果自由决定它的防止的位置。通常500-1000就已经很好了,但对于特定的图层有时候更小后者更大的值会看起来更舒服,减少距离的值会增强透视效果,所以一个非常微小的值会让它看起来更加失真,然而一个非常大的值会让它基本失去透视效果.

 CATransform3D transform = CATransform3DIdentity;
    //apply perspective
    transform.m34 = - 1.0 / 500.0;
    //rotate by 45 degrees along the Y axis
    transform = CATransform3DRotate(transform, M_PI_4, 0, 1, 0);
    //apply to layer
    self.layerView.layer.transform = transform;
5.10.jpeg

如果视图内有多个子视图都需要变换,可以指定父视图具有透视效果:

  CATransform3D perspective = CATransform3DIdentity;
    perspective.m34 = - 1.0 / 500.0;
    self.containerView.layer.sublayerTransform = perspective;

相关文章

  • CALyer 3D变换

    文章摘自https://zsisme.gitbooks.io/ios-/content/chapter5/3d-t...

  • 一篇文章带你了解CSS3 3D 转换知识

    CSS3 3D变换功能允许在3D空间中变换元素。 一、元素的3D转换 使用CSS3 3D变换功能,可以对三维空间中...

  • 一篇文章带你了解CSS3 3D 转换知识

    CSS3 3D变换功能允许在3D空间中变换元素。 一、元素的3D转换 使用CSS3 3D变换功能,可以对三维空间中...

  • iOS 动画二十二: Simple 3D Animations

    Simple 3D Animations 主要代码: 注 1:3d变换其实是一个矩阵变换: 利用 CATransf...

  • 2019-06-11

    CSS3 2d变换 3d变换 css3 2d变换 111111 222222

  • transform变换

    transform变换 1. 变换属性 transform 变换分为2D变换和3D变换,描述的是一种变化之后的结果...

  • CSS3 Transform变形(3D转换)

    CSS3 3D 转换 三维变换使用基于二维变换的相同属性,如果您熟悉二维变换,你们发现3D变形的功能和2D变换的功...

  • 05、CSS3-3D变换和动画

    一、3D变换 transform-style建立3D空间 perspective 景深 perspective- ...

  • CSS3动画

    CSS3之2D/3D动画 2D的变换3D的变换动画 2D动画的变换 基本说明 注意:一般要写不同浏览器的适配 移动...

  • CALayer 简单使用

    片头曲 曲曲曲曲曲曲曲曲曲曲曲曲曲 CALayer 0.calyer的简介 1.使用calyer layerVie...

网友评论

      本文标题:CALyer 3D变换

      本文链接:https://www.haomeiwen.com/subject/djznkttx.html