13

Apple の CoreGraphics ライブラリは、円弧を記述するための 2 つの関数を定義します。

  • CGPathAddArc は、中心点、半径、および角度のペアに基づいて円弧を追加します。
  • CGPathAddArcToPoint は、半径と接線のペアに基づいて円弧を追加します。

詳細はCGPath API リファレンスで説明されています。なぜ2つの機能?シンプルな便利?一方は他方よりも効率的ですか?一方は他方の観点から定義されていますか?

4

2 に答える 2

70

CGContextAddArcこれを行います:

addArc

ここで、赤い線は描画されるもの、sA はstartAngle、eA はendAngle、r はradius、x と y はxyです。前のポイントがある場合、関数はこのポイントから円弧の開始点まで線を引きます (この線が円弧と同じ方向に向かわないように注意しない限り)。

CGContextAddArcToPoint次のように動作します:

addArc

ここで、P1 はパスの現在のポイントであり、x1、x2、y1、y2 は関数x1x2y1y2および r と一致しますradius。円弧は、現在の点 と の間の線と同じ方向に開始し、 と の間の(x1, y1)方向で終了します。円の端で止まります。(x1, y1)(x2, y2)(x2, y2)

于 2013-09-28T09:31:10.803 に答える
8

前者は円の一部 (実際には 1 の近似値) を取得しますが、後者はベジエ パスを作成しているという事実を明らかにします。実際に何を描いているかによって、どちらか一方の方が便利な場合があります。両方とも CGPathAddCurveToPoint の便利さを考えることができます。

于 2008-09-16T22:59:07.040 に答える