我想在两点之间的弧上显示图像。我有一个起始CGPoint和一个结束CGPoint。我已经使用SceneKit和其他产生整个拱门和图形的答案看到了类似的答案。我只是在常规视野中工作。
我的最终目标是结束这样的事情(字母代表图像):
我需要知道在哪里设置B&的中心下进行。
let firstLabel = UILabel(frame: CGRectMake(12, 200, 50, 50))
let lastLabel = UILabel(frame: CGRectMake(250, 360, 50, 50))
答案 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
}