Симуляция узловой точки при переводе в Ключевой Gaphics - PullRequest
0 голосов
/ 28 марта 2011

Core Graphics не предоставляет свойство точки привязки, и все преобразования / переводы предполагают точку привязки 0,0 (слева внизу).Базовая анимация обеспечивает опорную точку, но мы не используем CA.

Кто-нибудь знает, как изменить матрицу преобразования (используется с CGAffineTransform), чтобы мы могли моделировать различные местоположения опорных точек (например, нижнюю серединуцентр и т. д.)

1004 * Спасибо

1 Ответ

2 голосов
/ 28 марта 2011

Конечно. Переведите желаемую точку в 0, 0. Затем примените любое преобразование, которое хотите. Затем примените обратный перевод.

Скажем, вы хотите повернуть вокруг точки 25, 25. Сделайте это:

CGAffineTransform *t = CGAffineTransformMake();
t = CGAffineTransformTranslate(t, -25, -25);
t = CGAffineTransformRotate(t, angle);
t = CGAffineTransformTranslate(t, 25, 25);

В этот момент t является преобразованием, которое будет вращаться на угол около 25, 25.

...