Я не знаком с CGAffineTransform или Objective-C (вы поймали меня с помощью математического тега). В общем, вы должны отказаться от преобразований индивидуально. Например, если аффинное преобразование A выполняет только масштабирование, вращение и перемещение (порядок масштабирования и вращения не важен в следующем методе, но перевод обязательно должен быть последним):
Перевод: Применение A к вектору (0,0) вернет результат (tx, ty), где tx и ty - переводы в направлениях X и Y соответственно.
Масштабирование по X: Применить A к вектору (1, 0) и получить (sx0 + tx, sx1 + ty). Масштабирование в X будет sqrt (sx0 ^ 2 + sx1 ^ 2)
Масштабирование по Y: Применить A к вектору (0, 1) и получить (sy0 + tx, sy1 + ty). Масштаб в Y будет sqrt (sy0 ^ 2 + sy1 ^ 2)
Поскольку аффинные преобразования реализуются с помощью простого трюка с линейными преобразованиями и поскольку линейные преобразования не являются коммутативными, вам необходимо понять, как упорядочены преобразования, прежде чем на самом деле работать, как вытащить отдельное преобразование.