2008-09-16 3 views
12

AppleのCoreGraphicsライブラリは、円弧を記述する2つの関数を定義しています。CGPathAddArcとCGPathAddArcToPoint

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

詳細はthe CGPath API referenceで説明します。なぜ2つの機能?シンプルな利便性?他のものより効率的ですか? 1つは他の観点から定義されていますか?

答えて

8

前者は円の一部(実際は近似値)を取得しますが、後者はベジエパスを作成していることを示しています。実際に描いているものによっては、どちらか一方がより便利かもしれません。実際にCGPathAddCurveToPointの両方の利便性を考慮することができます。

+0

CGPathAddArcToPointが円形ではない曲線を描画できることを暗示していますか?私はすべての円が円の一部だと思った。 – benzado

+0

ベジェ曲線で円を正確に記述することはできません。 –

63

CGContextAddArcこのない:赤線が描画されるものである

addArc

を、SAはstartAngleで、EAはendAngleあり、rはradiusであり、xおよびyはxyです。前の点がある場合、関数はこの点から弧の始点まで直線的になります(注意しない限り、この線は弧と同じ方向にはありません)。このような

CGContextAddArcToPoint

作品:

addArc

P1は、パスの現在の点、X1、X2、Y1、Y2マッチ機能 x1ある

x2y1y2 rはradiusあります。弧は、現在の点と(x1, y1)の間の線と同じ方向に開始し、(x1, y1)(x2, y2)の間の方向で終了します。 (x2, y2)には行かないでしょう。円の終わりで停止します。

+0

優秀!私はこれらが唯一の2つではないと確信している。他のAPIの図はどこにありますか? – CopperCash

+3

@CopperCashあなたを失望させていただきありがとうございますが、これらは私が知っている唯一の2つであり、コードで描いています(ほとんどの場合、ラベルとポイントは画像エディタで追加されました)。 –

関連する問題