Я создаю карту и вычисляю угол линий, чтобы определить ориентацию дороги (NSEW).Вычислить угол линии с отрицательным наклоном
Ниже формула я использую, чтобы вычислить угол линии:
Math.tan(slope)/(Math::PI/180)
Это работает до тех пор, наклон моей линии не является отрицательным. Как правильно рассчитать угол линии с отрицательным наклоном?
Update Чтобы вычислить угол линии, я сейчас с помощью
Math.atan2(delta_y, delta_x)/(Math::PI/180)
Проблема, кажется, проистекают из которых указывает подбираю линия начинается/заканчивается. В зависимости от того, какой я беру, некоторые верны, некоторые - нет, и наоборот. Вот изображение карты я создаю:
Я только пытаюсь вычислить угол линий, которые пересекаются с кадрирования. Одна из точек всегда там, где линия пересекается с ограничивающим прямоугольником, другая точка всегда только после этого.
Мое начало (0,0) находится в верхнем левом углу.
Имеет ли язык, на котором вы программируете, функцию 'Math.atan2 (y, x)'? Это даст вам правильное значение во всех четырех квадрантах. –
@AndrewMorton. Я использую Ruby. Будет ли 'y = (y1 - y2)' и 'x = (x1-x2)'? – theartofbeing
@AndrewMorton so '(Math.atan2 (delta_y, delta_x)/(Math :: PI/180))' - Кажется, я не получаю правильный угол. Да на 'E = 0, N = 90, W = 180, S = 270' – theartofbeing