2008-09-16 19 views
12

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

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

详细说明请参见the CGPath API reference。为什么两个功能?简单的方便?比另一个更有效率吗?一个是用另一个来定义的吗?

回答

8

前者让你获得圆的一部分(实际上是一个近似值),而后者则暴露了你正在创建贝塞尔路径的事实。根据您实际绘制的内容,其中一个或另一个可能更方便。你可以真的考虑CGPathAddCurveToPoint的两个方便之处。

+0

您的意思是暗示CGPathAddArcToPoint可以绘制一条不是圆形的曲线吗?我认为所有的弧都是圆的一部分。 – benzado 2008-09-17 19:32:12

+0

圆形不能用贝塞尔曲线精确描述。 – 2008-10-26 06:35:48

63

CGContextAddArc做到这一点:

addArc

其中红色线是什么将被吸引,SA是startAngle,EA是endAngle,r为radius,x和y是xy。如果你有一个先前的点,该功能将从这一点开始到弧的起点(除非你小心这条线不会与弧相同)。

CGContextAddArcToPoint是这样工作的:

addArc

其中P1是道路,X1,X2,Y1,Y2匹配功能x1x2y1y2和r的当前点是radius 。该弧线将以与当前点和(x1, y1)之间的线相同的方向开始,并在(x1, y1)(x2, y2)之间的方向结束。它不会行到(x2, y2)它会停在圆圈的尽头。

相关问题