CGPathAddArc与CGPathAddArcToPoint

时间:2008-09-16 22:50:44

标签: c macos drawing core-graphics

Apple的CoreGraphics库定义了两个用于描述弧的函数。

  • CGPathAddArc根据中心点,半径和一对角度添加弧。
  • CGPathAddArcToPoint根据半径和一对切线添加弧。

细节在the CGPath API reference中解释。为什么两个功能?简单方便吗?一个比另一个更有效吗?一个是用另一个定义的吗?

2 个答案:

答案 0 :(得分:66)

CGContextAddArc这样做:

addArc

其中红线是将要绘制的,sA是startAngle,eA是endAngle,r是radius,x和y是x和{ {1}}。如果你有一个前一个点,该函数将从这一点到该弧的起点(除非你小心这条线不会与弧的方向相同)。

y的工作原理如下:

addArc

其中P1是路径的当前点,x1,x2,y1,y2与函数CGContextAddArcToPointx1x2y1匹配,r是y2。弧将以与当前点和radius之间的线相同的方向开始,并以(x1, y1)(x1, y1)之间的方向结束。它不会排到(x2, y2)它会停在圆圈的末尾。

答案 1 :(得分:8)

前者让你成为一个圆圈的一部分(实际上是一个近似的圆圈),而后者则暴露了你正在创造一个Bézier路径的事实。根据您实际绘制的内容,一个或另一个可能更方便。你可以真正考虑它们对CGPathAddCurveToPoint的便利。