Что делает этот код определения угла?

Короче говоря, мне понадобился код JS, чтобы нарисовать вертикальную линию на разрабатываемой мной веб-странице. Итак, я поискал легкий код (без фреймворков и холста) и нашел следующее:

Рисование линии HTML без холста (только JS)

Я закинул его себе на страницу, и он заработал. Вроде, как бы, что-то вроде. Несмотря на то, что я дал ему координаты, чтобы нарисовать вертикальную линию, он решил, что линия должна быть горизонтальной. Рассматриваемый код выглядит следующим образом:

  var calc=Math.atan((ay-by)/(bx-ax));
  calc=calc*180/Math.PI;

Если я принудительно установлю угол равным нулю, все будет хорошо (см. здесь для JSFiddle и попробуйте переключить флаг calcAngle).

Как этот код определяет, под каким углом должна быть линия?

N.B. JSFiddle - это просто демонстрация проблемы и не имеет ничего общего с самим сайтом, поэтому, пожалуйста, не зацикливайтесь на деталях этого кода.


person Robbie Dee    schedule 27.11.2015    source источник
comment
Вы прошли начальную и конечную точки линии. Эти точки также составляют угол. Хотя calc = Math.atan((ay-by)/(bx-ax)); также следует использовать Math.atan2() для разрешения углов 90 ° и 270 °.   -  person Teemu    schedule 27.11.2015
comment
Кстати. этот мой ответ содержит простую drawLine функцию. Может, тебе это пригодится? Код комментируется, использует простые divs и CSS и не требует каких-либо библиотек или фреймворков.   -  person Teemu    schedule 28.11.2015
comment
Предлагаем вам заменить вычисление на -90 или 270 и умножить на Math.PI / 180.   -  person wolfhammer    schedule 28.11.2015