public class Point3 { public double x,y,z; static double rot[][]=new double[3][3]; public Point3(SpherePoint s) { x=Math.sin(s.lng)*Math.cos(s.lat); y=Math.cos(s.lng)*Math.cos(s.lat); z=Math.sin(s.lat); } Point3(Point3 foo) { x=foo.x; y=foo.y; z=foo.z; } Point3(double a,double b, double c) { x=a; y=b; z=c; } public String toString() { return x+" "+y+" "+z; } public static void setRotz(double theta) { rot[0][0]=Math.cos(theta); rot[0][1]=Math.sin(theta); rot[1][0]=-Math.sin(theta); rot[1][1]=Math.cos(theta); rot[2][2]=1.0; } public void rotate() { double a=rot[0][0]*x+rot[0][1]*y+rot[0][2]*z; double b=rot[1][0]*x+rot[1][1]*y+rot[1][2]*z; double c=rot[2][0]*x+rot[2][1]*y+rot[2][2]*z; x=a; y=b; z=c; } }