web-dev-qa-db-ja.com

CGAffineTransformMakeRotationの使用方法

enter image description here

Quartz 2Dを使用してテキストを描画します。 「メニュー」の方向が間違っています。 「メニュー」が読みやすく、X軸が45度であることを望みます。以下は私のコードです:

CGContextSelectFont(context, "Arial", 12, kCGEncodingMacRoman);
CGContextSetTextDrawingMode(context, kCGTextFill);

CGContextSetRGBFillColor(context, 0, 0, 0, 1); // 6 
CGContextSetRGBStrokeColor(context, 0, 0, 0, 1);

CGContextSetTextMatrix(context, CGAffineTransformMake(1.0,0.0, 0.0, -1.0, 0.0, 0.0));   
CGContextSetTextMatrix(context, CGAffineTransformMakeRotation(45)); 
CGContextShowTextAtPoint(context,10, 10, "Menu", 4);
27
user503853

CGAffineTransformMakeRotationは、度ではなくラジアン単位の角度を想定しています。

#define DEGREES_TO_RADIANS(x) (M_PI * (x) / 180.0)
...

CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(45));
114
Krishnabhadra
[view setTransform:CGAffineTransformMakeRotation(M_PI / 2)];
4
Sandeep Saurabh