Ios 如何绘制与圆弧垂直相交的直线(核心图形)?

Ios 如何绘制与圆弧垂直相交的直线(核心图形)?,ios,swift,core-graphics,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.degreesToRa

我想在圆上画一条线(截取圆的弧),像图中那样垂直

我用这个代码画圆

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()

基本思想是一个圆围绕一个中心点有一定的半径。要计算圆上的点,可以计算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
之间以给定角度的线段,例如,用于线段起点的“半径”可能刚好小于圆的半径。对于直线的终点,使用相同的角度,但使用略大于圆半径的半径值。

基本思想是圆围绕中心有一定半径
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
之间以给定角度的线段,例如,用于线段起点的“半径”可能刚好小于圆的半径。对于直线的终点,使用相同的角度,但使用刚好大于圆半径的半径值。

问题是如何进行CoreGraphics?(通常您甚至不会使用CoreGraphics,而是使用
stroke
a
UIBezierPath
或添加
CAShapeLayer
)或者问题是如何计算这些线段的起点和终点背后的数学?你知道怎么画圆圈吗?事实上,这个问题看起来太宽泛了。把你的代码放在画圆的地方,也把lineshow放在哪里来画这些线段的起点和终点?问题是如何做CoreGraphics?(通常您甚至不会使用CoreGraphics,而是使用
stroke
a
UIBezierPath
或添加
CAShapeLayer
)或者问题是如何计算这些线段的起点和终点背后的数学?你知道怎么画圆圈吗?事实上,这个问题看起来太宽泛了。把你的代码放在画圆的地方,也把lineshow放在哪里来画这些线段的起点和终点?谢谢Rob。爱你的回答,谢谢罗布。爱你的回答