Apple的CoreGraphics库定义了两个用于描述弧的函数。
细节在the CGPath API reference中解释。为什么两个功能?简单方便吗?一个比另一个更有效吗?一个是用另一个定义的吗?
答案 0 :(得分:66)
CGContextAddArc
这样做:
其中红线是将要绘制的,sA是startAngle
,eA是endAngle
,r是radius
,x和y是x
和{ {1}}。如果你有一个前一个点,该函数将从这一点到该弧的起点(除非你小心这条线不会与弧的方向相同)。
y
的工作原理如下:
其中P1是路径的当前点,x1,x2,y1,y2与函数CGContextAddArcToPoint
,x1
,x2
,y1
匹配,r是y2
。弧将以与当前点和radius
之间的线相同的方向开始,并以(x1, y1)
和(x1, y1)
之间的方向结束。它不会排到(x2, y2)
它会停在圆圈的末尾。
答案 1 :(得分:8)
前者让你成为一个圆圈的一部分(实际上是一个近似的圆圈),而后者则暴露了你正在创造一个Bézier路径的事实。根据您实际绘制的内容,一个或另一个可能更方便。你可以真正考虑它们对CGPathAddCurveToPoint的便利。