Показать сообщение отдельно
  #6 (permalink)  
Старый 24.12.2016, 18:40
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

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} находится второй вектор)
Ответить с цитированием