[英]Create arc between two CGPoints and get CGPoints along it
在这里,您可能需要椭圆形而不是圆形的参数方程式。 看起来像这样:
x = a * cos(t) y = b * sin(t) ,其中0 <= t <=2π
a和b是椭圆的半径。 如果我们认为A是(x1,y1)而D是(x2,y2),n-您希望在A和D之间得到的点数(在本示例中为2-B和C),则点计算应如下所示:
let a = x2 - x1
let b = y2 - y1
let angleStep = M_PI_2 / Double(n + 1)
var angle = angleStep
var points: [CGPoint] = []
while angle < M_PI_2 {
let x = a * CGFloat(cos(angle))
let y = y2 - b * CGFloat(sin(angle))
points.append(CGPointMake(x, y))
angle += angleStep
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.