计算圆边缘两点之间的角度Swift SpriteKit

计算圆边缘两点之间的角度Swift SpriteKit,swift,geometry,angle,degrees,Swift,Geometry,Angle,Degrees,如何计算Swift中圆边上两点之间的度数 给定点p1,p2位于圆心圆心的圆上, 首先计算差分向量: 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) 然后 是以弧度为单位的矢量之间的(定向)角度,以及 var deg = angle * CGFloat(180.0 / M_PI) 角度以度为单位。计算值的

如何计算Swift中圆边上两点之间的度数


给定点
p1
p2
位于圆心
圆心的圆上,
首先计算差分向量:

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)
然后

是以弧度为单位的矢量之间的(定向)角度,以及

var deg = angle * CGFloat(180.0 / M_PI)
角度以度为单位。计算值的范围可以是-360。。360,你呢
可能要将其规格化为0范围您确定这是一个圆吗?你知道圆圈的中心吗?因为两点不是圆,因为无穷多个不同的圆可以被两点亵渎——你需要第三个,要么在圆上,要么在原点上。我知道原点也是@corsiKaSo,那么你可以使用arctan(δy/δx)。我不知道swift sprite键是什么,所以我不确定该键的代码格式。编辑:大多数使用trig的编程语言都使用弧度,所以您的输出可能以弧度为单位。如果有一个函数将其转换为度,只需使用它;否则,使用公式将其转换为度,即rads*180/Pi。此代码在iPad上是否有效?所有将要发生的是,圆圈将扩大一点。@PoKoBros:这只是数学,它在任何设备上都能工作。它只计算一个角度,所以你说的“圆会放大一点”是什么意思?我只是说圆的半径会加倍iPad@PoKoBros:对不起,我不明白。这个问题是关于从三个点(中心,p1,p2)计算角度的。半径甚至不包含在公式中。那么“iPad上的半径是如何/在哪里加倍的”?出于某种原因,当我在iPad上尝试相同的精确代码时,它不起作用。
var deg = angle * CGFloat(180.0 / M_PI)
if deg < 0 { deg += 360.0 }