Si l'on considère la question exacte, en nous plaçant dans un système de coordonnées "spécial" où l'axe positif signifie que l'on se déplace vers le BAS (comme un écran ou une vue d'interface), il faut adapter cette fonction comme suit, et mettre les coordonnées Y en négatif :
Exemple en Swift 2.0
func angle_between_two_points(pa:CGPoint,pb:CGPoint)->Double{
let deltaY:Double = (Double(-pb.y) - Double(-pa.y))
let deltaX:Double = (Double(pb.x) - Double(pa.x))
var a = atan2(deltaY,deltaX)
while a < 0.0 {
a = a + M_PI*2
}
return a
}
Cette fonction donne une réponse correcte à la question. La réponse est en radians, donc l'utilisation, pour visualiser les angles en degrés, est :
let p1 = CGPoint(x: 1.5, y: 2) //estimated coords of p1 in question
let p2 = CGPoint(x: 2, y : 3) //estimated coords of p2 in question
print(angle_between_two_points(p1, pb: p2) / (M_PI/180))
//returns 296.56
0 votes
Voir aussi Même question pour JavaScript