Práctica: Polares a Cartesianas

Escriba una función p2c que permita pasar de coordenadas Polares a Cartesianas y de Cartesianas a Polares. Las fórmulas de conversión de Polares a Cartesianas son:

$x = $r*cos($angle); $y = $r*sin($angle)
y de Cartesianas a Polares son
$r = sqrt($x*$x+$y*$y); $angle = atan2($y,$x)
Vea perldoc perlfunc o man perlfunc para mas información sobre las funciones disponibles. Utilice el método de los argumentos con las claves (x, y, r, angle) para determinar el tipo de conversión requerida. La función retorna a su vez un hash con el mismo convenio de claves.

Son ejemplos de llamadas legales:

p2c(x=>1, r=>1) 
p2c(x=>1, y => 0)
p2c(r =>1, angle => 0.2)
La función devolverá un hash con los valores de x, y, r y angle.

Se considerará un error llamar a la función con un número de argumentos distinto de dos.

La función atan2(Y,X) devuelve la arcotangente de Y/X en radianes en el rango $ [-\pi, \pi]$. Para calcular la tangente puede usar la función Math::Trig::tan o simplemente sub tan { sin($_[0]) / cos($_[0]) }. Por ejemplo:

pp2@nereida:~/pp2bin$ perl -MMath::Trig -wde 0
main::(-e:1):   0
  DB<1> p atan2(0, -1)
3.14159265358979
  DB<2> $pi = atan2(0, -1)
  DB<3> p tan($pi/4)
1
La llamada al intérprete perl con la opción -MMath::Trig carga el módulo Math::Trig de la misma manera que lo hace el pragma use.

Casiano Rodríguez León
2009-10-04