Apple的CoreGraphics库定义了两个用于描述弧的函数.
CGPathAddArc基于中心点,半径和一对角度添加弧.
CGPathAddArcToPoint根据半径和一对切线添加弧.
详细信息在CGPath API参考中进行了解释.为什么两个功能?简单方便吗?一个比另一个更有效吗?一个是用另一个定义的吗?
CGContextAddArc
做这个:
其中红线是绘制的,sA是startAngle
,eA是endAngle
,r是radius
,而x和y是x
和y
.如果你有一个前一个点,该函数将从这一点到弧线的起点(除非你小心这条线不会与弧的方向相同).
CGContextAddArcToPoint
像这样工作:
其中,P1是路径中,X1,X2,Y1,Y2匹配的功能的当前点x1
,x2
,y1
,y2
和r是radius
.弧将以与当前点之间的线相同的方向开始,(x1, y1)
并且在(x1, y1)
和之间的方向上结束(x2, y2)
.它不会排到(x2, y2)
它将在圆圈结束时停止.
前者会让你成为圆圈的一部分(实际上是一个圆圈的近似值),而后者则暴露出你正在创造贝塞尔曲线的事实.根据您实际绘制的内容,一个或另一个可能更方便.你可以真正考虑它们对CGPathAddCurveToPoint的便利性.