CGPathAddArc与CGPathAddArcToPoint

ben*_*ado 12 c macos drawing core-graphics

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

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

详细信息在CGPath API参考中进行了解释.为什么两个功能?简单方便吗?一个比另一个更有效吗?一个是用另一个定义的吗?

Jam*_*ook 67

CGContextAddArc 做这个:

addArc

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

CGContextAddArcToPoint 像这样工作:

addArc

其中,P1是路径中,X1,X2,Y1,Y2匹配的功能的当前点x1,x2,y1,y2和r是radius.弧将以与当前点之间的线相同的方向开始,(x1, y1)并且在(x1, y1)和之间的方向上结束(x2, y2).它不会排到(x2, y2)它将在圆圈结束时停止.

  • @CopperCash很抱歉让你失望,但这是我所知道的唯一两个,我在代码中绘制它们(大多数情况下,标签和点都添加了图像编辑器). (3认同)

Chr*_*son 8

前者会让你成为圆圈的一部分(实际上是一个圆圈的近似值),而后者则暴露出你正在创造贝塞尔曲线的事实.根据您实际绘制的内容,一个或另一个可能更方便.你可以真正考虑它们对CGPathAddCurveToPoint的便利性.