ios-UIBezierPath按逆时针方向的百分比,以弧形开始为垂直向下位置

时间:2018-02-21 16:43:09

标签: ios swift uiview uibezierpath cashapelayer

我正在尝试创建逆时针UIBezierPath,其中弧的起点是负y轴(仅用于可视化)。

enter image description here

let arcPathForLayer = UIBezierPath(arcCenter: upperCenterPoint, radius: radius, startAngle: arcPathStartAngle, endAngle: (arcPathEndAngle), clockwise: false)

通常对于顺时针 UIBezierPath,开始和结束角度分别为 0.0pi 2.0pi - 如果路径为从正x轴开始形成。

但是对于UIBezierPath 逆时针并且弧的开始是负y轴的情况 - 起始角度和结束角度很难混淆计算。 所以我会发布相同的答案。

1 个答案:

答案 0 :(得分:1)

以下是解决方案的可视化:

here is the picture

因此,起始角度 0.5pi ,结束 -1.5pi ,现在用于绘制 25%的行程 - >结束角的值= 0pi
50% - >结束角度= -0.5pi ,以及 100%的相同注释 - >结束角度= -1.5pi

这是计算相同的公式:

endAngle = (0.5 - (2 * percentageForProgress)) * .pi