[Java] Calculer l'angle formé par trois points
lundi 23 février 2009
/**
* Retourne la valeur de l'angle formé par les points [a,origine,c]
* Cette methode retourne une valeur entre [0;PI], donc il s'agit toujours
* du plus petit angle formé par ces trois points.
*/
public static double getAngleRad(Point2d a, Point2d origine, Point2d c) {
Vector2d v1 = vector(a, origine);
Vector2d v2 = vector(c, origine);
double cosA = v1.dot(v2) / v1.length() / v2.length();
double aRad = Math.acos(cosA);
return aRad;
}
public static Vector2d vector(Point2d a, Point2d b) {
return new Vector2d(
b.x-a.x,
b.y-a.y
);
}