Apple 的 CoreGraphics 库定义了两个用于描述弧的函数。
- CGPathAddArc 基于中心点、半径和角度对添加弧。
- CGPathAddArcToPoint 基于半径和一对切线添加弧。
详细信息在CGPath API 参考中进行了说明。为什么要两个函数?简单方便?一个比另一个更有效吗?一个是根据另一个定义的吗?
Apple 的 CoreGraphics 库定义了两个用于描述弧的函数。
详细信息在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)
前者为您提供了一个圆的一部分(实际上是一个的近似值),而后者揭示了您正在创建 Bézier 路径的事实。根据您实际绘制的内容,其中一种可能更方便。您真的可以考虑为 CGPathAddCurveToPoint 提供这两种便利。