Java: le Calcul de l'angle entre deux points en degrés

J'ai besoin de calculer l'angle en degrés entre les deux points pour ma propre classe Point, le Point a est le point central.

Méthode:

public float getAngle(Point target) {
    return (float) Math.toDegrees(Math.atan2(target.x - x, target.y - y));
}

Test 1: //retourne 45

Point a = new Point(0, 0);
    System.out.println(a.getAngle(new Point(1, 1)));

Test 2: //retourne -90, attendu: 270

Point a = new Point(0, 0);
    System.out.println(a.getAngle(new Point(-1, 0)));

Comment puis-je convertir le résultat en un nombre entre 0 et 359?

  • Viens de remarquer que atan2 arguments sont dans l'ordre inverse: il faut être atan2(y, x)
  • Je ne sais pas ce qui va mal, mais ma commande fonctionne très bien, l'ordre inverse ne serait pas.
  • Vous pouvez seulement de mesurer l'angle entre trois points. Vous pourriez supposer (0, 0) ou (min(x1,x2), min(y1,y2)) est l'un des points, mais vous ne pouvez pas dessiner un angle entre deux points.
  • Lawrey le Point a représente le centre. Donc, je veux dire l'angle du point central et la ligne a du nouveau Point(x, y). Ou ne pas faire en ce sens?
  • Donc vous voulez dire l'angle entre la ligne (0, 0) à (1, 0) et (0,0) à (x, y) ?
  • Lawrey Oui, exactement. 🙂

InformationsquelleAutor Aich | 2012-04-02