Какую единицу Swift использует для углов?

Я пишу код для рисования круговых диаграмм и, читая пример кода, запутался в том, как измеряются углы в Swift.

В первом сообщении я прочитал, что Swift, похоже, использует радианы:

CGContextAddArc(context, origo.x, origo.y, radius, floatPi * 3 / 2, floatPi * 3 / 2 + floatPi * 2 * percent, 0)

Во втором сообщении Swift, похоже, определяет углы как диапазон от 0 до 1:

let circlePath = UIBezierPath(ovalInRect: CGRect(x: 200, y: 200, width: 150, height: 150))
var segments: [CAShapeLayer] = []
let segmentAngle: CGFloat = (360 * 0.125) / 360

for var i = 0; i < 8; i++ {
    let circleLayer = CAShapeLayer()
    circleLayer.path = circlePath.CGPath

    // start angle is number of segments * the segment angle
    circleLayer.strokeStart = segmentAngle * CGFloat(i)

    // end angle is the start plus one segment, minus a little to make a gap
    // you'll have to play with this value to get it to look right at the size you need
    let gapSize: CGFloat = 0.008
    circleLayer.strokeEnd = circleLayer.strokeStart + segmentAngle - gapSize

    circleLayer.lineWidth = 10
    circleLayer.strokeColor = UIColor(red:0,  green:0.004,  blue:0.549, alpha:1).CGColor
    circleLayer.fillColor = UIColor.clearColor().CGColor

    // add the segment to the segments array and to the view
    segments.insert(circleLayer, atIndex: i)
    view.layer.addSublayer(segments[i])
}

Итак, как Swift измеряет углы?

Спасибо


person user31415    schedule 25.06.2016    source источник


Ответы (1)


Swift не имеет абсолютно никакого отношения к единице измерения угла, это просто Float/Double к ней. Это функции фреймворка Core Graphics, которые определяют, какую угловую единицу они ожидают. Просто прочитайте документы соответствующих функций.

Из документов CGContextAddArc< /а>:

startAngle: угол к начальной точке дуги, измеренный в радианах от положительной оси x.

endAngle: угол до конечной точки дуги, измеренный в радианах от положительной оси x.

Также свойства strokeStart и strokeEnd CAShapeLayer говорят, какая часть данного пути должна быть нарисована, это не угол. Просто прочитайте документы в следующий раз.

person Kametrixom    schedule 25.06.2016