在两个CGPoints之间创建弧并沿其获取CGPoints

时间:2015-10-01 12:00:46

标签: ios swift uikit swift2

我想在两点之间的弧上显示图像。我有一个起始CGPoint和一个结束CGPoint。我已经使用SceneKit和其他产生整个拱门和图形的答案看到了类似的答案。我只是在常规视野中工作。

我的最终目标是结束这样的事情(字母代表图像):

enter image description here

我需要知道在哪里设置B&的中心下进行。

let firstLabel = UILabel(frame: CGRectMake(12, 200, 50, 50))
let lastLabel = UILabel(frame: CGRectMake(250, 360, 50, 50))

1 个答案:

答案 0 :(得分:4)

这里你可能需要椭圆的参数方程而不是圆。它看起来像这样:

  

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
}