How to convert points to radians in Objective-C?

后端 未结 3 742
深忆病人
深忆病人 2021-01-17 08:13

In my app I\'m using UIBezierPath to draw an arc into a circle. I\'m trying to correlate a number to radians. So let\'s say a user has a certain number of points, and the po

相关标签:
3条回答
  • 2021-01-17 08:33
    CGFloat radians = percent * 0.01 * 2 * M_PI;
    

    Simple algebra.

    0 讨论(0)
  • 2021-01-17 08:34

    I think what you want is the unit circle. Remember back to trigonometry when you used the unit circle? Same thing will apply here. If you need to get π - in Swift just say let π = CGFloat.pi (hold alt+p for the special character). In Objective-C - I think it's CGFloat π = M_PI;.

    You could go from zero to 2π/3 for the first 1/3, then from 2π/3 to 4π/3, then from 4π/3 to (full circle).

    I should not that I didn't make this graphic - it's from a tutorial on RayWenderlich.com - but it's oriented perfectly for the iOS coordinate system.

    0 讨论(0)
  • 2021-01-17 08:42

    Objective-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
    

    Swift

    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
    
    0 讨论(0)
提交回复
热议问题