Как изменить ось вращения текста - PullRequest
0 голосов
/ 20 октября 2008

Я использую CGContextShowText для отображения текста, но при его повороте с помощью CGAffineTransformation ось вращения расположена слева, а не в центре нарисованного текста, код, который я использую, таков:

CGContextSaveGState(context);

CGContextSelectFont(context, "Helvetica", 20, kCGEncodingMacRoman);
CGContextSetCharacterSpacing (context, 1);
CGContextSetRGBFillColor (context, 0, 0, 0, 1);
CGAffineTransform xform = CGAffineTransformMake(
    sin(DegreesToRadians(angle)), cos(DegreesToRadians(angle)),
    cos(DegreesToRadians(angle)), -sin(DegreesToRadians(angle)),
    0,  0);

CGContextSetTextDrawingMode (context, kCGTextFill); 

CGPoint degreeDisplayPoint = CGPointMake(100,100);
CGContextShowTextAtPoint(context, degreeDisplayPoint.x, degreeDisplayPoint.y, [angleStringWithDegree cStringUsingEncoding:NSMacOSRomanStringEncoding], [angleStringWithDegree length]); 

CGContextRestoreGState(context);

Есть идеи?

1 Ответ

5 голосов
/ 20 октября 2008

Переведите ваш объект так, чтобы его центр находился в (0, 0), затем поверните его, а затем переведите обратно туда, куда вы хотите.

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