13

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

  • CGPathAddArc 基于中心点、半径和角度对添加弧。
  • CGPathAddArcToPoint 基于半径和一对切线添加弧。

详细信息在CGPath API 参考中进行了说明。为什么要两个函数?简单方便?一个比另一个更有效吗?一个是根据另一个定义的吗?

4

2 回答 2

70

CGContextAddArc做这个:

添加弧

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

CGContextAddArcToPoint像这样工作:

添加弧

其中 P1 是路径的当前点,x1, x2, y1, y2 匹配函数x1, x2, y1, y2r 是radius。圆弧的起点与当前点 和 之间的直线的方向相同,并以和(x1, y1)之间的方向结束。它不会排队它会停在圆圈的尽头。(x1, y1)(x2, y2)(x2, y2)

于 2013-09-28T09:31:10.803 回答
8

前者为您提供了一个圆的一部分(实际上是一个的近似值),而后者揭示了您正在创建 Bézier 路径的事实。根据您实际绘制的内容,其中一种可能更方便。您真的可以考虑为 CGPathAddCurveToPoint 提供这两种便利。

于 2008-09-16T22:59:07.040 回答