Question

J'utilise CGContextShowText pour afficher du texte, mais lorsque vous le faites pivoter à l'aide de CGAffineTransformation , l'axe de rotation est situé à gauche et non au centre du texte dessiné. le code que j'utilise est le suivant:

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);

Des idées?

Était-ce utile?

La solution

Traduisez votre objet de sorte que son centre se trouve à (0, 0), puis faites-le pivoter, puis traduisez-le à l'endroit souhaité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top