Как изменить ось вращения текста
-
03-07-2019 - |
Вопрос
Я использую 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);
Есть идеи?
Решение
Переведите ваш объект так, чтобы его центр находился в точке (0, 0), затем поверните его, а затем переведите обратно туда, куда вы хотите.
Не связан с StackOverflow