2008-10-20 5 views
0

Я использую 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); 

Любые идеи?

ответ

5

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