我对 CATransform3D 结构的矩阵行/列顺序有些困惑。该结构定义了一个这样的矩阵:
[m11 m12 m13 m14]
[m21 m22 m23 m24]
[m31 m32 m33 m34]
[m41 m42 m43 m44]
起初,这些值似乎定义了行(因此 [m11 m12 m13 m14] 形成第一行),但是当您通过 (tx, ty, tz) 创建平移矩阵时,矩阵将如下所示:
[ 1 0 0 0]
[ 0 1 0 0]
[ 0 0 1 0]
[tx ty tz 1]
我的困惑来自于这不是一个有效的翻译矩阵。将它与 4 元素列向量相乘不会转换该点。
我的猜测是 CATransform3D 结构按列顺序存储值,因此值 [m11 m12 m13 m14] 形成第一列(而不是第一行)。
任何人都可以确认吗?