def cartesiana_para_polar(x,y):
""" converte de coordenadas cartesianas para polares."""
r = sqrt(x**2 + y**2)
theta = math.atan(float(y)/x)
return r, theta
Nota: Usar a função atan() pode trazer problemas pois o quadrante do ângulo não é determinada. Por exemplo, se as coordenadas forem (1,1) e (-1,-1) , vamos ter sempre o mesmo resultado, 45º, e não esse, na primeira situação, e 135º na segunda. Também há problemas caso o ponto seja (1,0). A solução está em usar atan2():
def cartesiana_para_polar(x,y):
""" converte de coordenadas cartesianas para polares."""
r = sqrt(x**2 + y**2)
theta = math.atan2(y,x)
return r, theta
Notar a vírgula a separar os argumentos, em vez da divisão.
Sem comentários:
Enviar um comentário