Нужны примеры того, как использовать CGAffineTransform в CGPaths - PullRequest
6 голосов
/ 05 ноября 2010

Я не понимаю, как применить параметр "CGAffineTransform", который появляется практически в каждом методе CGPath, например ::100100

void CGPathAddRect (
   CGMutablePathRef path,
   const CGAffineTransform *m,
   CGRect rect
);

Допустим, я хочу повернуть прямоугольный путь, как бы я выписал эту функцию? Где взять матрицу преобразования?

1 Ответ

7 голосов
/ 05 ноября 2010

Вы используете CGAffineTransformMakeRotation для создания CGAffineTransform, который вращает прямоугольник вокруг точки (0, 0).

 CGAffineTransform rotation = CGAffineTransformMakeRotation(M_PI / 4);  // π/4 = 45°
 CGPathAddRect(path, &rotation, CGRectMake(0, 0, 80, 40));

Если вам нужно повернуть его относительно любых других точек (x, y),нужно составить 2 перевода для перемещения (x, y) в (0, 0) и обратно.

...