public x11(String[] args) { int i, j, k; double[] x = new double[XPTS]; double[] y = new double[YPTS]; double[][] z = new double[XPTS][YPTS]; double zmin = Double.MAX_VALUE, zmax = Double.MIN_VALUE; double xx, yy; int nlevel = LEVELS; double[] clevel = new double[LEVELS]; double step; // Parse and process command line arguments. pls.parseopts(args, PL_PARSE_FULL | PL_PARSE_NOPROGRAM); // Initialize plplot. pls.init(); for (i = 0; i < XPTS; i++) x[i] = 3. * (i - (XPTS / 2)) / (XPTS / 2); for (j = 0; j < YPTS; j++) y[j] = 3. * (j - (YPTS / 2)) / (YPTS / 2); for (i = 0; i < XPTS; i++) { xx = x[i]; for (j = 0; j < YPTS; j++) { yy = y[j]; z[i][j] = 3. * (1. - xx) * (1. - xx) * Math.exp(-(xx * xx) - (yy + 1.) * (yy + 1.)) - 10. * (xx / 5. - Math.pow(xx, 3.) - Math.pow(yy, 5.)) * Math.exp(-xx * xx - yy * yy) - 1. / 3. * Math.exp(-(xx + 1) * (xx + 1) - (yy * yy)); // if ( false ) // Jungfraujoch/Interlaken // { // if ( z[i][j] < -1. ) // z[i][j] = -1.; // } if (zmin > z[i][j]) zmin = z[i][j]; if (zmax < z[i][j]) zmax = z[i][j]; } } step = (zmax - zmin) / (nlevel + 1); for (i = 0; i < nlevel; i++) clevel[i] = zmin + step + step * i; cmap1_init(); for (k = 0; k < 2; k++) { for (i = 0; i < 4; i++) { pls.adv(0); pls.col0(1); pls.vpor(0.0, 1.0, 0.0, 0.9); pls.wind(-1.0, 1.0, -1.0, 1.5); pls.w3d(1.0, 1.0, 1.2, -3.0, 3.0, -3.0, 3.0, zmin, zmax, alt[k], az[k]); pls.box3( "bnstu", "x axis", 0.0, 0, "bnstu", "y axis", 0.0, 0, "bcdmnstuv", "z axis", 0.0, 4); pls.col0(2); // wireframe plot if (i == 0) pls.mesh(x, y, z, opt[k]); // magnitude colored wireframe plot else if (i == 1) pls.mesh(x, y, z, opt[k] | MAG_COLOR); // magnitude colored wireframe plot with sides else if (i == 2) pls.plot3d(x, y, z, opt[k] | MAG_COLOR, true); // magnitude colored wireframe plot with base contour else if (i == 3) pls.meshc(x, y, z, opt[k] | MAG_COLOR | BASE_CONT, clevel); pls.col0(3); pls.mtex("t", 1.0, 0.5, 0.5, title[k]); } } pls.end(); }