zoukankan      html  css  js  c++  java
  • CATransform3D中m34字段的取值含义

    转载自: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(观察者)到投射面的距离。
  • 相关阅读:
    第二章.md
    第四章.md
    第一章.md
    第九章.md
    png简析.md
    第五章.md
    好看的粒子效果
    缓动 减速运动
    收集的小效果
    粒子效果2
  • 原文地址:https://www.cnblogs.com/gatsbywang/p/4908878.html
Copyright © 2011-2022 走看看