2

次を使用してiPhoneで描画するために、左上ではなく左下隅を使用しています。

CGContextTranslateCTM(context, 0.0, 200.0);
CGContextScaleCTM(context, 1.0, -1.0);

これは、グラフを描画するために原点を変更する場合は問題なく機能しますが、ラベルは上下逆に表示されます。

座標系を使用するだけでなく、描画しているグラフに適切にラベルを付けるために通常の直線テキストを取得するにはどうすればよいですか?

4

2 に答える 2

4

はい、最近同じ問題を解決しなければなりませんでした。秘訣は、ラベルを書き込む直前に「反転」を簡単に元に戻すことです。

    NSPoint p = NSMakePoint(x+5,5);
CGContextSaveGState(ctx);  
CGContextTranslateCTM(ctx, 0, b.origin.y+y+25); // Flip temporarily for text 
CGContextScaleCTM(ctx, 1.0, -1.0);  
[string drawAtPoint: p withAttributes:nil];    // Draw your strings
CGContextRestoreGState(ctx);                   // Flip back

b.origin.y の値は表示可能領域の高さであり、x と y はラベルの位置であることに注意してください。

于 2009-08-03T14:01:46.040 に答える
2

CGContextSaveGStateとを使用CGContextRestoreGState
て、CTM スケーリングがテキストではなくグラフィックスに適用されるようにします。

于 2009-07-28T19:04:48.087 に答える