Чтобы повернуть вокруг центра:
CGContextTranslateCTM (ctx, center.x, center.y);
CGContextRotateCTM (ctx, angleInRadians);
CGContextTranslateCTM (ctx, -center.x, -center.y);
CGContextAddPath (ctx, path);
У меня могут быть знаки перевода назад (т.е. отрицательный перевод до вращения, а не после), хотя я считаю, что методы CTM предварительно согласованы, поэтому математическое представлениеиз этих вызовов
CTMnew = -T * R * T * CTMcurrent