Estoy teniendo un pequeño problema con algunos trigonometría básica. Estoy haciendo algunos deberes de matemáticas, y finalmente me aburrí de convertir coordenadas rectangulares a coordenadas polares y viceversa, así que decidí animar un pequeño programa de Python para ayudarme con las conversiones. Sin embargo, Math.atan() me está dando un pequeño problema. Aquí está el código:.Trig básico: Problema de 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
En caso de que se esté preguntando por qué tengo esos if
declaraciones torpes en allí, es añadir el ángulo correcto para el cuadrante de las coordenadas rectangulares están en el cuadrante 2 es de 90 grados de distancia del Cuadrante 1, y el Cuadrante 3 está a 180 grados del Cuadrante 1, etc.
Ahora, si ingreso un valor como (5, 5)
, todo funciona como se esperaba. Sin embargo, si ingreso (-5, 5)
, obtengo un valor de 7.07, 45
, donde debería obtener 7.07, 135
. Si ingreso (-5, -5)
, obtengo un valor de 7.07, 225
, que se espera. Finalmente, si ingreso un valor de (5, -5)
, sigo obteniendo un valor de 7.07, 225
. He intentado todo lo que puedo pensar, pero no está funcionando. Entonces, ¿qué me estoy perdiendo?
Sí, eso fue todo, gracias! Disculpas por la espera. –