如何使用 UIBezierPath 基于小数绘制圆弧
How to draw arc based on decimals using UIBezierPath
我画了一个圆,从 -pi/2 开始到 3(pi)/2 形成一个完整的圆。在它的顶部,我有一个圆弧,它根据它接收到的十进制值绕着圆圈。所以值 0.5 应该填满圆的一半,0.9 应该绕圆 90%,等等
我知道圆弧的起始角度与第一个圆相同(即 -pi/2),但是如何计算结束角度?
我们来举个例子。假设您的百分比系数是 0.5
。一个完整的圆是 2*pi
弧度。现在乘以您的百分比因子:0.5
是 2*pi*0.5
弧度(恰好是 pi
)。但是你想从 -pi/2
开始,所以添加:pi
加上 -pi/2
是 pi/2
。因此,您将从 -pi/2
开始并在 pi/2
结束。
现在让我们做0.9
的例子。这是一样的:您将从 -pi/2
开始并在 2*pi*0.9 - pi/2
结束。
作为健全性检查,这是我实际 绘制 0.9
示例时使用这些数字得到的结果(这是 Swift 代码,但我不'认为这将证明是任何困难):
let b = UIBezierPath(arcCenter: CGPoint(x:100,y:100), radius: 50,
startAngle: -.pi/2, endAngle: 2*(.pi)*0.9 - .pi/2,
clockwise: true)
这是一张图表,您可以用它来做进一步的健全性检查(但要小心,因为他们选择让数字增长 counter-clockwise):
请记住,如果需要,您始终可以加减 2*pi 将相同的值从负值转换为正值,反之亦然。因此 -pi/2 和 3*pi/2 最终将你带到圆上的同一个地方。
我画了一个圆,从 -pi/2 开始到 3(pi)/2 形成一个完整的圆。在它的顶部,我有一个圆弧,它根据它接收到的十进制值绕着圆圈。所以值 0.5 应该填满圆的一半,0.9 应该绕圆 90%,等等
我知道圆弧的起始角度与第一个圆相同(即 -pi/2),但是如何计算结束角度?
我们来举个例子。假设您的百分比系数是 0.5
。一个完整的圆是 2*pi
弧度。现在乘以您的百分比因子:0.5
是 2*pi*0.5
弧度(恰好是 pi
)。但是你想从 -pi/2
开始,所以添加:pi
加上 -pi/2
是 pi/2
。因此,您将从 -pi/2
开始并在 pi/2
结束。
现在让我们做0.9
的例子。这是一样的:您将从 -pi/2
开始并在 2*pi*0.9 - pi/2
结束。
作为健全性检查,这是我实际 绘制 0.9
示例时使用这些数字得到的结果(这是 Swift 代码,但我不'认为这将证明是任何困难):
let b = UIBezierPath(arcCenter: CGPoint(x:100,y:100), radius: 50,
startAngle: -.pi/2, endAngle: 2*(.pi)*0.9 - .pi/2,
clockwise: true)
这是一张图表,您可以用它来做进一步的健全性检查(但要小心,因为他们选择让数字增长 counter-clockwise):
请记住,如果需要,您始终可以加减 2*pi 将相同的值从负值转换为正值,反之亦然。因此 -pi/2 和 3*pi/2 最终将你带到圆上的同一个地方。