CGAffineTransform проблема - PullRequest
       3

CGAffineTransform проблема

3 голосов
/ 23 июня 2011

У меня есть UIImageView, который я применил:

CGAffineTransformConcat(scaleTransform, rotateTransform);

Теперь мне нужно получить фактическое значение масштаба и градусов поворота .Я могу получить градусы поворота, но проблема возникает при получении значения масштаба .Значение масштаба, которое я получаю, не является правильным, если я не поворачиваю представление к 0.0;

Я думаю, что это происходит, потому что матрица теперь умножена (масштаб * вращение).*

Любые идеи о том, как получить правильное значение шкалы?

1 Ответ

0 голосов
/ 23 июня 2011

Я решил мне проблему.

Чтобы получить угол:

float angle = atan2(imageView.transform.b, imageView.transform.a);

Преобразование масштаба, примененное к imageView, было равномерным , поэтому для получения значения масштаба:

CATransform3D localScaleTransform = [(CALayer *)[imageView.layer presentationLayer] transform];
float scale = sqrt(pow(localScaleTransform.m11, 2) + pow(localScaleTransform.m12, 2));

Если вы применили другие значения шкалы, выполните следующие действия:

scaleInX = sqrt (M11 ^ 2 + M12 ^ 2)

scaleInY = sqrt (M21 ^ 2 + M22 ^ 2)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...