CATransform3D矩阵各元素含义咨询:含m14、m24作用解析
CATransform3D矩阵元素与变换对应关系
先明确你使用的变换矩阵:
CATransform3D(m11:1, m12:0, m13:0, m14:g/i, m21:0, m22:1, m23:0, m24:h/i, m31:0, m32:0, m33:1, m34:0, m41:0, m42:0, m43:0, m44:1.0)
各元素对应的变换类型
- 缩放变换:主对角线元素
m11(X轴缩放)、m22(Y轴缩放)、m33(Z轴缩放)。你当前矩阵中这三个值都是1,说明无缩放操作。 - 旋转变换:非对角线元素
m12/m21(XY平面旋转)、m13/m31(XZ平面旋转)、m23/m32(YZ平面旋转)。你的矩阵中这些值全为0,说明无旋转操作。 - 常规平移变换:
m41(X轴平移)、m42(Y轴平移)、m43(Z轴平移)。当前这三个值都是0,说明无常规平移。 - 透视变换:由
m34(透视强度)、m14/m24(透视偏移)、m44(透视缩放)共同控制。你的矩阵中m34为0,m44为1,透视效果主要由m14和m24实现。
m14、m24的具体作用
在CATransform3D的齐次坐标体系中,m14和m24负责控制透视投影下的偏移效果,本质是基于Z轴深度对图层进行X/Y方向的透视偏移,让图层呈现符合真实视角的变形:
m14:控制X轴方向的透视偏移。当值不为0时,图层X方向的位置会随Z轴深度变化——Z值越大(图层离视点越远),X方向偏移量越大,类似现实中远处物体向X轴某一侧汇聚的视觉效果。m24:控制Y轴方向的透视偏移。逻辑和m14一致,图层Y方向位置随Z轴深度变化,Z值越大,Y方向偏移量越大。
你矩阵中m14 = g/i、m24 = h/i的形式,通常是自定义透视投影计算后的结果,用来实现特定视角下的图层变形。
内容的提问来源于stack exchange,提问作者DinesM
相关产品推荐
相关产品推荐

