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. El método p2c deberá poder ser llamado con argumentos con nombre. Las claves (x, y, r, angle) determinarán 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
Licencia de Creative Commons
Principios de Programación Imperativa, Funcional y Orientada a Objetos Una Introducción en Perl/Una Introducción a Perl
por Casiano Rodríguez León is licensed under a Creative Commons Reconocimiento 3.0 Unported License.

Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=43.
2012-06-19