У меня есть некоторая путаница в отношении порядка строк / столбцов матрицы структуры 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] образуют первый столбец (а не первую строку).
Кто-нибудь может подтвердить?