// test_spiral.java find min and max for various ranges // spiral(x,y) function included below public class test_spiral { double xmin, xmax, ymin, ymax, zmin, zmax, atx, aty; public test_spiral() { System.out.println("test_spiral.java running"); xmin = -1.0; xmax = 1.0; ymin = -1.0; ymax = 1.0; range(); System.out.println("xmin="+xmin+", xmax="+xmax+ ", ymin="+ymin+", ymax="+ymax); System.out.println("zmin="+zmin+", zmax="+zmax+ ",\n atx="+atx+", aty="+aty); xmin = -2.0; xmax = 2.0; ymin = -2.0; ymax = 2.0; range(); System.out.println("xmin="+xmin+", xmax="+xmax+ ", ymin="+ymin+", ymax="+ymax); System.out.println("zmin="+zmin+", zmax="+zmax+ ",\n atx="+atx+", aty="+aty); xmin = -0.01; xmax = -1.0; ymin = 0.01; ymax = 1.0; range(); System.out.println("xmin="+xmin+", xmax="+xmax+ ", ymin="+ymin+", ymax="+ymax); System.out.println("zmin="+zmin+", zmax="+zmax+ ",\n atx="+atx+", aty="+aty); xmin = 0.01; xmax = 1.0; ymin = 0.01; ymax = 1.0; range(); System.out.println("xmin="+xmin+", xmax="+xmax+ ", ymin="+ymin+", ymax="+ymax); System.out.println("zmin="+zmin+", zmax="+zmax+ ",\n atx="+atx+", aty="+aty); xmin = -0.01; xmax = -1.0; ymin = -0.01; ymax = -1.0; range(); System.out.println("xmin="+xmin+", xmax="+xmax+ ", ymin="+ymin+", ymax="+ymax); System.out.println("zmin="+zmin+", zmax="+zmax+ ",\n atx="+atx+", aty="+aty); } // end constructor test_spiral void range() { double x, y, z, xh, yh; int n=101; xh = (xmax-xmin)/(double)n; yh = (ymax-ymin)/(double)n; z = spiral(xmin,ymin); zmin = z; zmax = z; atx = xmin; aty = ymin; for(int i=0; i<=n; i++) { x = xmin+(double)i*xh; for(int j=0; j<=n; j++) { y = ymin+(double)j*yh; z = spiral(x,y); if(zzmax) zmax = z; } } } // end range // spiral trough double spiral(double x, double y) { double halfpi = 1.57079; double r, theta, tz; r = Math.sqrt(x*x+y*y); if(r < 0.001) theta = 0.0; else theta = Math.atan2(y,x); tz = theta/halfpi; if(tz < 0.0) tz = tz + 4.0; return 0.75*r + Math.sin((r+tz)*halfpi); } // end of spiral public static void main (String[] args) { new test_spiral(); } } // end class test_spiral