在我的应用中,我使用UIBezierPath将圆弧绘制成圆形。我试图将数字与弧度相关联。因此,让我们说用户有一定数量的积分,积分上限为100点。我希望100分为360度。我希望圆圈的前33%是绿色,然后从34%到圆圈的下一个66%用橙色抚摸,然后从67%到100%用红色抚摸。
我在这里遇到的问题是将圆圈的百分比转换为弧度。在创建UIBezier路径时,我需要提供一个startAngle和endAngle,并且我在将这些点转换为弧度值时遇到了一些麻烦。
我将如何解决这个问题?
由于
答案 0 :(得分:0)
CGFloat radians = percent * 0.01 * 2 * M_PI;
简单代数。
答案 1 :(得分:0)
我认为你想要的是单位圈。使用单位圆时,还记得回到三角学吗?这同样适用于此。如果你需要得到π - 在Swift中只说let π = CGFloat.pi
(对特殊字符保持alt + p)。在Objective-C中 - 我认为它是CGFloat π = M_PI;
。
您可以在前1/3从0到2π/3
,然后从2π/3
到4π/3
,然后从4π/3
到2π
(完整)圆圈)。
我不应该让我没有制作这个图形 - 它来自RayWenderlich.com的教程 - 但它完全适用于iOS坐标系。
答案 2 :(得分:0)
目标-C
CGFloat fullCircle = 2 * M_PI ; // M_PI Pi number which is half of the circle in radian
CGFloat startPoint = 0.0 ;
CGFloat endPoint = fullCircle * 0.33 ;
// Assuming circling clockwise
// .... Draw first step UIBezierPath
startPoint = endPoint ;
endPoint = startPoint + fullCircle * 0.33 ;
// .... Draw second step UIBezierPath
startPoint = endPoint ;
endPoint = fullCircle - startPoint ; // This to make sure the whole circle will be covered
// .... Draw the last step UIBezierPath
夫特
let fullCircle = 2 * M_PI // M_PI Pi number which is half of the circle in radian
var startPoint: Float = 0.0
var endPoint: Float = fullCircle * 0.33
// Assuming circling clockwise
// .... Draw first step UIBezierPath
startPoint = endPoint
endPoint = startPoint + fullCircle * 0.33
// .... Draw second step UIBezierPath
startPoint = endPoint
endPoint = fullCircle - startPoint // This to make sure the whole circle will be covered
// .... Draw the last step UIBezierPath