this.turn = function(obj1, obj2){
var dx = obj2.X() - obj1.X(), dy = obj2.Y() - obj1.Y();
var p = Math.abs(dx) / dx; isNaN(p) && (p = 1);
return 180 * p * Math.acos(dy / Math.sqrt(dx * dx + dy * dy)) / Math.PI;
};
У вас, как я понял один вектор всегда {0; 1}, а второй имеет начало в obj1, а конец в obj2. Значит задача сводится к поиску угла между двумя этими векторами. (И ещё поправка в какую сторону от {0; 1} находится второй вектор)