ios - 如何使用 UIBezierPath 路径 ios 或 swift 计算圆弧绘制上的中点

标签 ios swift

我正在使用 UIBezierPath 绘制弧线。我如何计算这个弧的中点。

let center = CGPoint(x: bounds.width / 2, y: bounds.height / 2)
var startValue: CGFloat = 0
var startAngle: CGFloat = 0
var endValue: CGFloat = 0
var endAngle: CGFloat = 0

startAngle = (startValue * 2 * CGFloat(M_PI)) - CGFloat(M_PI_2)
endValue = startValue + 0.20
endAngle = (endValue * 2 * CGFloat(M_PI)) -CGFloat(M_PI_2)

let path = UIBezierPath()
path.moveToPoint(center)
path.addArcWithCenter(center, radius: radius.outer, startAngle: startAngle, endAngle: endAngle, clockwise: true)

path.fill()
path.stroke()

最佳答案

中点角度将是您的startAngleendAngle的平均值。这将根据center点和radius.outer计算点:

let midPointAngle = (startAngle + endAngle) / 2.0
let midPoint = CGPoint(x: center.x + radius.outer * cos(midPointAngle), y: center.y - radius.outer * sin(midPointAngle))

关于ios - 如何使用 UIBezierPath 路径 ios 或 swift 计算圆弧绘制上的中点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33890464/

相关文章:

iOS:如何在 UIScrollView 中显示长文本?

iOS - Titanium Appcelerator,创建带预览的视频库

ios - swift 中的协议(protocol)继承

ios - 用户通知 : Custom Vibration pattern

Swift 3 - 如何从另一个 View 插入 TableView 单元格?

swift - Xcode 无法删除桥接文件

ios - 按下 UILabel 时分配变量值以打开 Apple map 的问题

iphone - 如何在iPhone中获得最接近的更大整数值

ios - 我们是否必须在 UIViewController 中的 viewDidLoad 中或 viewDidLoad 之外初始化属性?

ios - 在 iOS 中,如何从数据创建音频文件(.wav、.mp3)文件?