Comment calculer l'angle d'un vecteur à partir de la verticale?

Im essayant de trouver l'angle (en degrés) entre deux vecteurs 2D. Je sais que j'ai besoin d'utiliser la trigo, mais je ne suis pas trop bien avec elle. C'est ce que je suis en train de travailler (l'axe des Y augmente vers le bas):
le texte d'alt http://i38.tinypic.com/2dcefch.png

Je suis en train d'utiliser ce code pour le moment, mais ça ne marche pas à tous (calcule aléatoires pour une certaine raison):

private float calcAngle(float x, float y, float x1, float y1)
{
    float _angle = (float)Math.toDegrees(Math.atan2(Math.abs(x1-x), Math.abs(y1-y)));
    Log.d("Angle","Angle: "+_angle+" x: "+x+" y: "+y+" x1: "+x1+" y1: "+y1);
    return _angle;
}

Ce sont mes résultats (Il y en constante lors de la fourniture d'une position constante, mais quand j'ai changer la position, l'angle change et je ne trouve pas de lien entre les deux angles):

Position 1:
x:100 j:100
x1:50 y1:50
Angle: 45

Position 2:
x:92 y:85
x1:24 y1:16
Angle: 44.58

Position 3:
x:44 y: 16
x1:106 y1:132
Angle: 28.12

Edit: Merci à tous ceux qui ont répondu et m'a aidé à comprendre que c'était faux! Désolé, le titre et la question a été source de confusion.

source d'informationauteur Niall