public class RPunkt{ double x, y, z; public RPunkt(double ux, double uy, double uz){ sea(ux, uy, uz); } public void sea(double ux, double uy, double uz){ x=ux; y=uy; z=uz; } public static RPunkt keera(RPunkt p, double nxz, double nyz, double nxy){ double vx=p.x; double vy=p.y; double vz=p.z; double ux, uy, uz; ux=vx*Math.cos(nxz)-vz*Math.sin(nxz); uz=vx*Math.sin(nxz)+vz*Math.cos(nxz); vx=ux; vz=uz; uy=vy*Math.cos(nyz)-vz*Math.sin(nyz); uz=vy*Math.sin(nyz)+vz*Math.cos(nyz); vy=uy; vz=uz; ux=vx*Math.cos(nxy)-vy*Math.sin(nxy); uy=vx*Math.sin(nxy)+vy*Math.cos(nxy); return new RPunkt(ux, uy, uz); } public RPunkt keera(double nxz, double nyz, double nxy){ return RPunkt.keera(this, nxz, nyz, nxy); } public RPunkt lahuta(RPunkt up){ return new RPunkt(x-up.x, y-up.y, z-up.z); } public RPunkt vastand(){return new RPunkt(-x, -y, -z);} public RPunkt liida(RPunkt up){ return new RPunkt(x+up.x, y+up.y, z+up.z); } public RPunkt korruta(double tegur){ return new RPunkt(tegur*x, tegur*y, tegur*z); } public RPunkt astmesse(int aste){ return new RPunkt(Math.pow(x, aste), Math.pow(y, aste), Math.pow(z, aste)); } public double pikkus(){ return Math.sqrt(x*x+y*y+z*z); } public String toString(){return x+" "+y+" "+z;} public RPunkt koopia(){return new RPunkt(x, y, z);} }