Ho bisogno di calcolare l'angolo in gradi tra due punti per la mia propria classe di punti, il punto a è il punto centrale.Java: calcolo dell'angolo tra due punti in gradi
Metodo:
public float getAngle(Point target) {
return (float) Math.toDegrees(Math.atan2(target.x - x, target.y - y));
}
Test 1: // ritorna 45
Point a = new Point(0, 0);
System.out.println(a.getAngle(new Point(1, 1)));
Test 2: // ritorna -90, prevede: 270
Point a = new Point(0, 0);
System.out.println(a.getAngle(new Point(-1, 0)));
Come posso convertire il risultato restituito in un numero compreso tra 0 e 359?
appena notato che ATAN2 argomenti sono in ordine inverso: devono essere atan2 (y, x) – alexm
Non so che cosa va male, ma il mio ordine funziona bene, l'ordine inverso no. – Aich
È possibile misurare solo l'angolo tra tre punti. Potresti assumere '(0, 0)' o '(min (x1, x2), min (y1, y2))' è uno dei punti ma non puoi disegnare un angolo tra due punti. –