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

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

详细信息在CGPath API参考中进行了解释。 为什么两个功能? 简单方便吗? 一个比另一个更有效吗? 一个是用另一个定义的吗?

===============>>#1 票数:67

CGContextAddArc执行此操作:

addArc

其中红线是将要绘制的,sA是startAngleendAngleendAngle ,r是radius ,x和y是xy 如果你有一个前一个点,该函数将从这一点到弧线的起点(除非你小心这条线不会与弧的方向相同)。

CGContextAddArcToPoint工作方式如下:

addArc

其中P1是路径的当前点,x1,x2,y1,y2匹配函数x1x2y1y2 ,r是radius 弧将以与当前点和(x1, y1)之间的线相同的方向开始,并且在(x1, y1)(x2, y2)之间的方向上结束。 它不会行到(x2, y2)它会在圆的末尾停止。

===============>>#2 票数:8 已采纳

前者会让你成为圆圈的一部分(实际上是一个圆圈的近似值),而后者则暴露出你正在创造贝塞尔曲线的事实。 根据您实际绘制的内容,一个或另一个可能更方便。 你可以真正考虑它们对CGPathAddCurveToPoint的便利性。

  ask by benzado translate from so

未解决问题?本站智能推荐:

2回复

将CGPathAddArcToPoint转换为Swift 3

我已升级到Swift 3,现在无法在网上找到提示以解决此问题。 我能够研究移动并添加一条线,但没有这一条线。 这是我的原始代码,但我不知道如何转换。 我很确定我需要使用addArc,但这是我研究的范围。 有人可以帮帮我吗?
1回复

CGPathAddArc是否包含圆的中心像素?

我使用CGPathAddArc创建一个圆,如果半径为5像素,则整个圆的宽度最终将为10像素还是11像素? 如果最终以10像素结尾,也会令人困惑。 在这种情况下,半径中心是什么意思? CGPathAddArc在这里定义:
1回复

通过CGContext函数(CGContextAddArc等)绘制与CGPath函数(CGPathAddArc等)之间的区别

我知道如果你使用CGPath函数绘制,你最后还是必须将CGPath添加到CGContext(CGContextAddPath),但是在第二种方法中选择第一种方法是否有任何优势/劣势? 是的,我知道您也可以使用UIBezierPath进行绘制,我知道CGPath之间的区别。