Лучше всего было бы найти библиотеку с векторной математикой, самостоятельно такие вещи писать чревато багами и потерянным временем. Если такой библиотеки с нет, то нужна, как минимум, библиотека со стандартными математическими функциями.

Угол α между вектором A и осью X можно получить с помощью функции
atan2:
α = atan2(A.y, A.x)
Угол поворота θ от вектора A к вектору B можно получить вычитанием:
θ = atan2(A.y, A.x) - atan2(B.y, B.x)