COS(X) dislpay wrong answer
|
09-01-2018, 11:46 PM
(This post was last modified: 09-02-2018 02:28 AM by Magnus512.)
Post: #1
|
|||
|
|||
COS(X) dislpay wrong answer
So I'm writing a code to change between coordinate systems, this is the code
------------------------------------- EXPORT SPHERE,RECTAN,CYLIN; //Rectangular to Spherical //(x,y,z)-->(ρ,θ,φ) EXPORT RECT2SPHE(CORD) BEGIN //Separacion de coordenadas en x,y y z. LOCAL x:=CORD(1),y:=CORD(2),z:=CORD(3); //Variables para guardar resultado temporal LOCAL ρ,θ,φ,result; //Operaciones para convertir los valores ρ:=SQRT(x^2+y^2+z^2); θ:=atan2(y/x); φ:=ACOS(z/ρ); //Guardar el resultado en la variable global SPHERE SPHERE:=[ρ,θ,φ]; RETURN("ρ="+ρ+" θ="+θ+" φ="+φ); END; //Spherical to Rectangular //(ρ,θ,φ)-->(x,y,z) EXPORT SPHE2RECT(CORD) BEGIN //Separacion de cordenadas en r,θ y φ. LOCAL ρ:=CORD(1),θ:=CORD(2),φ:=CORD(3); //Variables para guardar resultado temporal LOCAL x,y,z,result; x:=ρ*SIN(φ)*COS(θ); y:=ρ*SIN(φ)*SIN(θ); z:=ρ*COS(φ); //Guardar el resultado en la variable global RECTAN RECTAN:=[x,y,z]; RETURN("x="+x+" y="+y+" z="+z); END; //Rectangular to Cylindrical //(x,y,z)-->(r,θ,z) EXPORT RECT2CYL(CORD) BEGIN //Separacion de coordenadas en x,y y z. LOCAL x:=CORD(1),y:=CORD(2),z:=CORD(3); //Variables para guardar resultado temporal LOCAL r,θ,result; r:=SQRT(x^2+y^2); θ:=atan2(y,x); z:=z; //Guardar el resultado en la variable global CYLIN CYLIN:=[r,θ,z]; RETURN("r="+r+" θ="+θ+" z="+z); END; //Cylindrical to Rectangular //(r,θ,z)-->(x,y,z) EXPORT CYL2RECT(CORD) BEGIN //Separacion de coordenadas en r,θ y z. LOCAL r:=CORD(1),θ:=CORD(2),z:=CORD(3); //Variables para guardar resultado temporal LOCAL x,y,result; x:=r*COS(θ); y:=r*SIN(θ); z:=z; //Guardar el resultado en la variable global RECTAN RECTAN:=[x,y,z]; RETURN("x="+x+" y="+y+" z="+z); END; //Spherical to Cylindrical //(ρ,θ,φ)-->(r,θ,z) EXPORT SPHE2CYL(CORD) BEGIN //Separacion de coordenadas en (ρ,θ,φ) LOCAL ρ:=CORD(1),θ:=CORD(2),φ:=CORD(3); //Variables para guardar resultado temporal LOCAL r,z,result; r:=ρ*SIN(φ); θ:=θ; z:=ρ*COS(φ); //Guardar el resultado en la variable global CYLIN CYLIN:=[r,θ,z]; RETURN("r="+r+" θ="+θ+" z="+z); END; //Cylindrical to Spherical //(r,θ,z)-->(ρ,θ,φ) EXPORT CYL2SPHE(CORD) BEGIN //Separacion de coordenadas en r,θ y z. LOCAL r:=CORD(1),θ:=CORD(2),z:=CORD(3); //Variables para guardar resultado temporal LOCAL ρ,φ,result; ρ:=SQRT(r^2+z^2); θ:=θ; φ:=atan2(r,z); //Guardar el resultado en la variable global SPHERE SPHERE:=[ρ,θ,φ]; RETURN("ρ="+ρ+" θ="+θ+" φ="+φ); END; ------------------------------------ .... So when I convert from Rectangular to Cylindrical in radian mode the "error" comes out, I convert to Cylindrical and take the result of the conversion and I pass it to the function that converts from Cylindrical to Rectangular and there it is I don't get the first input values I mean almost, I don't get 1 I get 1.0000000.... But when I work in degrees it works fine So is this a Bug ? an internal error ? Or a mistake of mine ? |
|||
« Next Oldest | Next Newest »
|
Messages In This Thread |
COS(X) dislpay wrong answer - Magnus512 - 09-01-2018 11:46 PM
RE: COS(X) dislpay wrong answer - Albert Chan - 09-02-2018, 01:10 AM
RE: COS(X) dislpay wrong answer - Magnus512 - 09-02-2018, 02:28 AM
RE: COS(X) dislpay wrong answer - Albert Chan - 09-02-2018, 02:56 AM
RE: COS(X) dislpay wrong answer - Magnus512 - 09-02-2018, 03:40 AM
RE: COS(X) dislpay wrong answer - Albert Chan - 09-02-2018, 12:10 PM
RE: COS(X) dislpay wrong answer - Magnus512 - 09-02-2018, 04:33 PM
RE: COS(X) dislpay wrong answer - rprosperi - 09-03-2018, 01:55 AM
RE: COS(X) dislpay wrong answer - JMB - 09-02-2018, 01:02 PM
RE: COS(X) dislpay wrong answer - Magnus512 - 09-02-2018, 04:22 PM
RE: COS(X) dislpay wrong answer - Albert Chan - 09-02-2018, 01:39 PM
RE: COS(X) dislpay wrong answer - Magnus512 - 09-02-2018, 04:16 PM
|
User(s) browsing this thread: 1 Guest(s)