1

現在のコンテキストでカスタム アークを描画しようとしていますが、結果は期待したものではありません。描画メソッドの場合は単純なコード行があります。

-(void) drawRect:(CGRect)rect
{
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextBeginPath(context);
    CGContextSetGrayFillColor(context, 1.0, 0.7);
    CGContextMoveToPoint(context, 100,100);
    CGContextAddArc(context, 100, 100, 80, 0, M_PI_2, 0);
    CGContextClosePath(context);
    CGContextFillPath(context);
}

これが結果です。 ここに画像の説明を入力

しかし、私はこのような結果を見ることが期待されていました。M_PI_2 が円の下側に表示されるのはなぜですか? 3*M_PI_2 があるはずですが、何が間違っていますか? ここに画像の説明を入力

4

1 に答える 1

4

これについては、iOS の描画と印刷のガイドの「iOS での座標系と描画」で説明されています。

iOS の各描画フレームワークは、現在のグラフィックス コンテキストに基づいてデフォルトの座標系を確立します。iOS には、主に次の 2 種類の座標系があります。

  • 左上原点座標系 (ULO)。描画操作の原点は描画領域の左上隅にあり、正の値は右下に伸びます。UIKit および Core Animation フレームワークで使用されるデフォルトの座標系は、ULO ベースです。

  • 左下原点座標系 (LLO) では、描画操作の原点は描画領域の左下隅にあり、正の値は右上に伸びます。Core Graphics フレームワークで使用されるデフォルトの座標系は LLO ベースです。

正の角度 ( などM_PI_2) は、正の X 軸から正の Y 軸に向かう回転を表します。したがって、UIKit によって提供されるグラフィックス コンテキストでは、正の角度が下に回転します。

この回答も参照してください。

于 2013-01-11T19:53:13.257 に答える