Для преобразования в градусы вы можете использовать множитель (180 градусов / радиан Math.PI). Этот коэффициент преобразования получается, если заметить, что радианы Math.PI эквивалентны 180 градусам. Таким образом, если theta1 находится в радианах, то theta2 = theta1 * (180 / Math.PI) будет эквивалентно theta1, за исключением того, что у него будет единица градусов.
Чтобы рассчитать угол линии, вы должны использовать стандартную формулу для касательной из тригонометрии, а затем взять арктангенс обеих сторон, чтобы получить тета
tan (theta) = противоположный / соседний -> theta = arctangent (противоположный / соседний)
Это можно применить к вашей линии, сформировав соответствующий треугольник. Для этого выберите любые две точки на линии (x1, y1) и (x2, y2). Затем вы можете сформировать уникальный прямоугольный треугольник с гипотенузой, представляющей собой отрезок прямой между (x1, y1) и (x2, y2), противоположная сторона которой представляет собой отрезок вертикальной линии длины (y2 - y1), а соседняя сторона - горизонтальную. отрезок длины (x2 - x1).
Вы можете рассчитать значение тета, вычислив
Double theta = (180/Math.PI) * Math.Atan2(opposite, adjacent);
Функция автоматически позаботится о случае, когда смежность равна нулю (что обычно приводит к ошибке деления на ноль), и вернет наиболее подходящий угол (90 градусов или -90 градусов), за исключением случая, когда оба противоположны и смежные ноль. В этом случае тэта равен нулю, что не имеет особого смысла. В этом случае действительно должно быть исключение, поскольку математически невозможно определить угол треугольника с гипотенузой нулевой длины.