如何绘制垂直交叉弧线的线(Core Graphics)?

时间:2017-07-18 05:47:13

标签: ios swift core-graphics

我想在画面上画一条直线(截取圆弧),如图所示。

我正在使用此代码绘制圆圈

let center = CGPoint(x: bounds.width / 2, y: bounds.height / 2)

let path = UIBezierPath(arcCenter: center, radius: radius, startAngle: Conversion.degreesToRadians(value: CGFloat(0)), endAngle: Conversion.degreesToRadians(value: CGFloat(360)), clockwise: true)
path.lineWidth = 2
path.lineCapStyle = CGLineCap.square
UIColor.white.setStroke()
path.stroke()

enter image description here

1 个答案:

答案 0 :(得分:0)

基本思想是圆圈在中心CGPoint附近具有一定的半径。要计算圆上的一个点,您可以像这样计算x和y坐标:

func point(center: CGPoint, radius: CGFloat, angle: CGFloat) -> CGPoint {
    let x = center.x + radius * cos(angle)
    let y = center.y + radius * sin(angle)
    return CGPoint(x: x, y: y)
}

其中角度以弧度为单位,从3点钟开始,顺时针旋转。

因此,这些垂直交叉笔划仅仅是在给定角度下两个CGPoint之间的线段,其中"半径"例如,用于线段开始的东西可能小于圆的半径。对于线的终点,使用相同的角度,但是然后使用刚好大于圆的半径的半径值。