3

次のように、CGPathAddCurveToPoint を使用して、半径 15 ポイントの完全な右半円を作成しようとしています。

CGPathMoveToPoint(path, NULL, 0, 0);
CGPathAddCurveToPoint(path, NULL, 15, 0, 15, 30, 0, 30);

円の上部中央から開始します。次に、最初の制御点が円の境界ボックスの右上隅に設定されます。2 番目の制御点は、円の境界ボックスの右下隅に設定されます。円は境界ボックスの下部中央で終了します。

しかし、描くと、円は卵のような形になります。

点 0,0 から右に進み、0,30 で終わる完璧で完璧な右半球を作成するにはどうすればよいですか?

4

1 に答える 1

5

CGPathAddCurveToPoint円弧ではなく、ベジエ曲線を作成します。以下のように、探しているメソッドはCGPathAddArcまたはです。CGPathAddArcToPoint

CGPathMoveToPoint(path, NULL, 0, 0);
CGPathAddArc(path, NULL, 0, 15, 15, M_PI_2, -M_PI_2, true);
于 2012-08-17T20:38:37.047 に答える