CATransform3D

Posted 幻想无极

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CATransform3D相关的知识,希望对你有一定的参考价值。

CATransform3D 的数据结构定义了一个同质的三维变换(4x4 CGFloat值的矩阵),用于图层的旋转,缩放,偏移,歪斜和应用的透视。

transform : 是结合 anchorPoint(锚点)的位置来对图层和图层上的子图层进行变化。

sublayerTransform:是结合anchorPoint(锚点)的位置来对图层的子图层进行变化,不包括本身。

CATransform3DIdentity 是单位矩阵,该矩阵没有缩放,旋转,歪斜,透视。该矩阵应用到图层上,就是设置默认值。

平移

CA_EXTERN CATransform3D CATransform3DMakeTranslation (CGFloat tx,CGFloat ty, CGFloat tz)

tx:X轴偏移位置,往下为正数。

ty:Y轴偏移位置,往右为正数。

tz:Z轴偏移位置,往外为正数。

缩放

CA_EXTERN CATransform3D 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,发生关于原点的对称等比变换。

旋转

CA_EXTERN CATransform3D 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之间

翻转

CA_EXTERN CATransform3D CATransform3DInvert (CATransform3D t)

仿射

CA_EXTERN CGAffineTransform CATransform3DGetAffineTransform (CATransform3D t)

 

以上是关于CATransform3D的主要内容,如果未能解决你的问题,请参考以下文章

应用 CATransform3D 后的近似矩形?

使用 CATransform3D 性能不佳

CATransform3D 特效详解

围绕所有轴的 CATransform3D

为啥使用 CATransform3D 进行这种转换会减小视图的宽度?

旋转视图边缘的 CATransform3D 深度