CGPathAddArc と CGPathAddArcToPoint
-
09-06-2019 - |
質問
Apple の CoreGraphics ライブラリは、円弧を記述するための 2 つの関数を定義しています。
- CGPathAddArc は、中心点、半径、および角度のペアに基づいて円弧を追加します。
- CGPathAddArcToPoint は、半径と接線のペアに基づいて円弧を追加します。
詳細については、 CGPath API リファレンス. 。なぜ 2 つの機能があるのでしょうか?シンプルな便利さ?一方は他方よりも効率的ですか?一方は他方に関して定義されていますか?
解決
前者は円の一部 (実際には円の近似) を取得しますが、後者はベジェ パスを作成しているという事実を明らかにします。実際に何を描いているかに応じて、どちらか一方の方が便利な場合があります。どちらも CGPathAddCurveToPoint にとって便利であると考えることができます。
他のヒント
CGContextAddArc
これを行います:
ここで、赤い線は描画されるもの、sA は startAngle
, 、eAは endAngle
, 、rは radius
, 、x と y は x
そして y
. 。前の点がある場合、関数はこの点から円弧の開始点まで直線を描きます (注意しないと、この直線は円弧と同じ方向に進みません)。
CGContextAddArcToPoint
このように動作します:
P1 がパスの現在の点である場合、x1、x2、y1、y2 は関数と一致します。 x1
, x2
, y1
, y2
そしてrは radius
. 。円弧は、現在の点と現在の点の間の線と同じ方向に始まります。 (x1, y1)
との間の方向で終了します (x1, y1)
そして (x2, y2)
. 。それはラインにならない (x2, y2)
円の端で止まります。
所属していません StackOverflow