/**
* Obtiene el angulo con respecto de la horizontal de un
* vector definido en el plano calculando en primer lugar el
* arco tangente y después comprobando el cuadrante en el que
* se encuentra.
* @param x0 Coordenada X del punto origen del vector.
* @param y0 Coordenada Y del punto origen del vector.
* @param x1 Coordenada X del punto final.
* @param y1 Coordenada Y del punto final.
* @return Ángulo en radianes.
* @author K.Stopa - GPLv3
*/
public double getAngle(double x0, double y0, double x1, double y1)
{
double dx = x1 - x0;
double dy = y1 - y0;
double dy0 = dy;
double dx0 = dx;
if (dx < 0.0) dx0 = -dx;
if (dy < 0.0) dy0 = -dy;
double angval = Math.atan2(dy0, dx0);
if (dx < 0.0 && dy > 0.0) {
angval = Math.PI - angval;
} else if ((dx < 0.0) && (dy <= 0.0)) {
angval = Math.PI + angval;
} else if ((dx >= 0.0) && (dy < 0.0)) {
angval = 2.0 * Math.PI - angval;
}
return angval;
}