我想在圆上画一条垂直的线(截取圆的弧线),如图所示。
我用这个代码画圆
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
之间以给定角度的线段,其中用于线段开始的“半径”可能是,例如,小于圆半径的某个值。对于直线的终点,使用相同的角度,但随后使用的半径值刚好大于圆的半径。关于ios - 如何绘制与弧垂直相交的线(核心图形)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45158467/