ios-UIBezierPath 逆时针方向的百分比描边,圆弧的起点是从垂直向下的位置

ios-UIBezierPath stroke by percentage for anti-clockwise with start for arc is from vertical downward position

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


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

通常顺时针 UIBezierPath,起止角为0.0pi2.0pi 分别 - 如果路径从正 x 轴开始。

但是对于这种情况 UIBezierPath 逆时针 并且弧的起点是 负 y 轴 - 起始角和结束角很小计算混乱。 所以我会 post 相同的答案。

这是解决方案的可视化:


所以开始角度是0.5pi结束是-1.5pi,现在
for draw the stroke for 25% --> end angle = 0pi,
for 50的值% --> end angle = -0.5pi,
以及 100% -- > 结束角度 = -1.5pi

这是相同的计算公式:

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