你将如何计算 Swift 中圆边缘上两点之间的度数。
问问题
11174 次
1 回答
35
给定 points p1
,p2
在一个有 center 的圆上center
,首先计算差分向量:
let v1 = CGVector(dx: p1.x - center.x, dy: p1.y - center.y)
let v2 = CGVector(dx: p2.x - center.x, dy: p2.y - center.y)
然后
let angle = atan2(v2.dy, v2.dx) - atan2(v1.dy, v1.dx)
是这些向量之间的(有向)角度,以弧度表示,并且
var deg = angle * CGFloat(180.0 / M_PI)
以度为单位的角度。计算值可以在 -360 .. 360 范围内,因此您可能希望将其标准化为范围 0 <= deg < 360
if deg < 0 { deg += 360.0 }
于 2015-02-21T03:21:39.757 回答