Mega Code Archive

 
Categories / Java / Advanced Graphics
 

Contouring

import java.awt.*; import java.applet.*; import java.net.URL; import java.util.*; import graph.*; /************************************************************************* ** **    Applet example6 **                                              Version 1.0   February 1996 ** ************************************************************************** **    Copyright (C) 1996 Leigh Brookshaw ** **    This program is free software; you can redistribute it and/or modify **    it under the terms of the GNU General Public License as published by **    the Free Software Foundation; either version 2 of the License, or **    (at your option) any later version. ** **    This program is distributed in the hope that it will be useful, **    but WITHOUT ANY WARRANTY; without even the implied warranty of **    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the **    GNU General Public License for more details. ** **    You should have received a copy of the GNU General Public License **    along with this program; if not, write to the Free Software **    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ************************************************************************** ** **    This applet demonstrates the the contouring cababilities **    of the Contour class ** *************************************************************************/ public class example6 extends Applet {       LoadData dynamic;       Contour graph;       Label title;       Axis    xaxis;       Axis    yaxis;       public void init() {         int i;         int j; /* **      Instantiate the Contour class and calculate the data */         graph = new Contour();         graph.setDataBackground(new Color(0.933f,0.914f,0.749f));         graph.setContourColor(new Color(0.180f,0.545f,0.341f));         graph.setLabelledContourColor(new Color(0.5f,.0f,0.0f));         graph.setLabelPrecision(2);         graph.setLabelSignificance(2); //        this.showStatus("Creating Data to Contour!");         createGrid(graph);         graph.square       = true; /* **      Build the title and place it at the top of the graph */         graph.setFont(new Font("TimesRoman",Font.PLAIN,25));         title = new Label("Contouring Example", Label.CENTER);         title.setFont(new Font("TimesRoman",Font.PLAIN,25));         setLayout( new BorderLayout() );         add("North",  title);         add("Center", graph); /* **      Instantiate the xaxis and attach the dataset. */         xaxis = graph.createXAxis();         xaxis.setTitleText("X_axis");         xaxis.setTitleColor(Color.magenta);         xaxis.setTitleFont(new Font("TimesRoman",Font.ITALIC,25));         xaxis.setLabelFont(new Font("Helvetica",Font.PLAIN,20)); /* **      Instantiate the yaxis and attach the dataset. */         yaxis = graph.createYAxis();         yaxis.setTitleText("Y_axis");         yaxis.setTitleColor(Color.magenta);          yaxis.setTitleFont(new Font("TimesRoman",Font.ITALIC,25));         yaxis.setLabelFont(new Font("Helvetica",Font.PLAIN,20));       }       public void createGrid(Contour graph) {          int i,j;          int count;                    int nx = 50;          int ny = 50;          double xmin = -1.0;          double xmax =  1.0;          double ymax =  1.0;          double ymin = -1.0;          double array[] = new double[nx*ny];          double x, y, rad;          double h1, h2, h3;          h1 = 0.5*0.5;          h2 = 0.75*0.75;          h3 = 0.25*0.25;          count = 0;          for(j=0; j<ny; j++) {              y = 2.0*(double)j/(double)(ny-1) - 1.0;              for(i=0; i<nx; i++) {                 x = 2.0*(double)i/(double)(nx-1) - 1.0;                 rad = (x-0.5)*(x-0.5) + (y+0.5)*(y+0.5);                 array[count] = Math.exp( -rad/h1 );                 rad = (x+0.3)*(x+0.3) + (y-0.75)*(y-0.75);                 array[count] += Math.exp( -rad/h2 );                 rad = (x+0.7)*(x+0.7) + (y+0.6)*(y+0.6);                 array[count] += Math.exp( -rad/h3 );                 count++;           }      }            graph.setGrid(array,nx,ny);            graph.setRange(xmin,xmax,ymin,ymax);            graph.setLimitsToGrid(true);            graph.setLabelLevels(3);            graph.setNLevels(20);       }       public static void main(String[] a){          javax.swing.JFrame f = new javax.swing.JFrame();          Applet app = new example6();          app.init();                    f.getContentPane().add (app);          f.pack();          f.setSize (new Dimension (500, 500));          f.setVisible(true);       }       }                     Graph-Contouring.zip( 233 k)