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 = rsin($angle)y de Cartesianas a Polares son
r = sqrt(x*x+y*y); angle = atan2(y,x)
Sigue un ejemplo de uso de algunas funciones matemáticas:
~/Lgroovy/objects$ cat -n maths.groovy 1 def radians = Math.PI/4 2 def degrees = 45 3 4 def d2r = { it*Math.PI/180 } 5 def r2d = { it*180/Math.PI } 6 7 println "sin(PI/4) = ${Math.sin(radians)} == sin(45º) = ${Math.sin(d2r(degrees))}" 8 println "cos(PI/4) = ${Math.cos(radians)} == cos(45º) = ${Math.cos(d2r(degrees))}" 9 println "tan(PI/4) = ${Math.tan(radians)} == tan(45º) = ${Math.tan(d2r(degrees))}" 10 println "asin(sqrt(2)/2) = ${Math.asin(2**(-0.5))} == asin(sqrt(2)/2)º = ${r2d(Math.asin(2**(-0.5)))}º" 11 println "acos(sqrt(2)/2) = ${Math.acos(2**(-0.5))} == acos(sqrt(2)/2)º = ${r2d(Math.acos(2**(-0.5)))}º" 12 println "atan(1) = ${Math.atan(1)} == atan(1)º = ${r2d(Math.atan(1))}º"Ejecución:
~/Lgroovy/objects$ groovy maths.groovy sin(PI/4) = 0.7071067811865475 == sin(45º) = 0.7071067811865475 cos(PI/4) = 0.7071067811865476 == cos(45º) = 0.7071067811865476 tan(PI/4) = 0.9999999999999999 == tan(45º) = 0.9999999999999999 asin(sqrt(2)/2) = 0.7853981633974482 == asin(sqrt(2)/2)º = 44.99999999999999º acos(sqrt(2)/2) = 0.7853981633974484 == acos(sqrt(2)/2)º = 45.00000000000001º atan(1) = 0.7853981633974483 == atan(1)º = 45.0ºUtilice argumentos con nombres (
x
, y
, r
, angle
)
para determinar el tipo de conversión requerida. La función retorna a su vez un mapa con el mismo
convenio de nombres.
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 mapa 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.
Casiano Rodríguez León