У меня небольшая проблема с некоторыми базовыми триггерами.Я делаю некоторую домашнюю работу по математике, и мне наконец надоело преобразовывать прямоугольные координаты в полярные и наоборот, поэтому я решил создать небольшую программу на Python, чтобы помочь мне с преобразованиями.Однако Math.atan () доставляет мне небольшие неприятности.Вот код:
def rect_to_polar_input(x, y):
hypotenuse = math.sqrt((x * x) + (y * y))
tangent = float(y / x);
angle = round(math.degrees(math.atan(tangent)));
if x <= 0:
if(y >=0):
angle += 90
if(y <= 0):
angle+= 180
if x >= 0:
if(y<0):
angle+=270
return hypotenuse, angle
Если вам интересно, почему у меня есть эти неуклюжие операторы if
, нужно добавить правильный угол для квадранта, в котором находятся прямоугольные координаты. Квадрант 2 равен 90градусов от квадранта 1, а квадрант 3 - на 180 градусов от квадранта 1 и т. д.
Теперь, если я введу значение типа (5, 5)
, все будет работать, как и ожидалось.Однако, если я введу (-5, 5)
, я получу значение 7.07, 45
, где я должен получить 7.07, 135
.Если я введу (-5, -5)
, я получу значение 7.07, 225
, что ожидается.Наконец, если я введу значение (5, -5)
, я все равно получу значение 7.07, 225
.Я перепробовал все, что мог придумать, но это не работает.Итак, что мне не хватает?