Mega Code Archive

 
Categories / Java / Advanced Graphics
 

Math Function Chart

import java.awt.*; import java.applet.*; import java.net.URL; import graph.*; /************************************************************************* ** **    Applet example1a **                                              Version 1.0   January 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 is a simple applet that demonstrates how to use the basic features **    of the Plotting Class library. The data is calculated locally by **    the applet ** *************************************************************************/ public class example1a extends Applet {       Graph2D graph1;       Graph2D graph2;       DataSet data1;       DataSet data2;       Axis    xaxis1;       Axis    xaxis2;       Axis    yaxis1;       Axis    yaxis2;       double data[];       int np = 25;       URL markersURL;       Markers markers;       Panel      panel;       Label title;       public void init() {         int i;         int j;         double data[] = new double[2*np]; /* **      Get the passed parameters */         String st = "TITLE";         String mfile    = "marker.txt"; /* **      Create the Graph instance and modify the default behaviour */         graph1 = new Graph2D();         graph1.drawzero = false;         graph1.drawgrid = false;         graph1.borderRight = 0;         graph1.setDataBackground(new Color(255,230,200));         graph2 = new Graph2D();         graph2.drawzero = false;         graph2.drawgrid = false;         graph2.borderLeft =  0;         graph2.setDataBackground(new Color(230,230,230)); /* **      Build the title */         title = new Label(st, Label.CENTER);         title.setFont(new Font("TimesRoman",Font.PLAIN,20)); /* **      Load a file containing Marker definitions */         try {            markersURL = this.getClass().getResource(mfile);            markers = new Markers(markersURL);      /*      ** Lets add our own marker to the marker list            */            int x[] = new int[12];            int y[] = new int[12];            boolean d[] = new boolean[12];            x[0]=-2; y[0]= 4; d[0]=false;            x[1]= 2; y[1]= 4; d[1]=true;            x[2]= 0; y[2]= 4; d[2]=false;            x[3]= 0; y[3]=-4; d[3]=true;            x[4]=-2; y[4]=-4; d[4]=false;            x[5]= 2; y[5]=-4; d[5]=true;            x[6]=-4; y[6]= 0; d[6]=false;            x[7]= 4; y[7]= 0; d[7]=true;            x[8]=-4; y[8]= 2; d[8]=false;            x[9]=-4; y[9]=-2; d[9]=true;            x[10]=4; y[10]= 2; d[10]=false;            x[11]=4; y[11]=-2; d[11]=true;            markers.AddMarker(9,12,d,x,y);         } catch(Exception e) {             e.printStackTrace();            System.out.println("Failed to create Marker URL!");         }                    graph1.setMarkers(markers);         graph2.setMarkers(markers);         panel = new Panel();         panel.setLayout( new GridLayout(0,2,0,0) );         panel.add(graph1);         panel.add(graph2);         this.setLayout( new BorderLayout() );         this.add("North", title);         this.add("Center", panel); /* **      Calculate the first data Set. */         for(i=j=0; i<np; i++,j+=2) {             data[j] = j-np;             data[j+1] = 60000 * Math.pow( ((double)data[j]/(np-2) ), 2);         }         data1 = graph1.loadDataSet(data,np);         data1.linecolor   =  Color.red;         data1.linestyle = 1;         data1.marker    = 9;         data1.markerscale = 1.0;         data1.markercolor = new Color(0,0,255);         data1.legend(150,75,"y=6x10{^4}x^2");         data1.legendColor(Color.black); /* **      Calculate the Second data Set. */         for(i=j=0; i<np; i++,j+=2) {             data[j] = j-np;             data[j+1] = Math.pow( ((double)data[j]/(np-2) ), 3);         }         data2 = graph2.loadDataSet(data, np);         data2.linecolor   =  new Color(0,255,0);         data2.marker      = 3;         data2.markercolor = new Color(100,100,255);         data2.legend(100,75,"y=x^3");         data2.legendColor(Color.black); /* **      Attach data sets to the Xaxes */         xaxis1 = graph1.createAxis(Axis.BOTTOM);         xaxis1.attachDataSet(data1);         xaxis1.setTitleText("Xaxis Left");         xaxis1.setTitleFont(new Font("TimesRoman",Font.PLAIN,20));         xaxis1.setLabelFont(new Font("Helvetica",Font.PLAIN,15));         xaxis2 = graph2.createAxis(Axis.BOTTOM);         xaxis2.attachDataSet(data2);         xaxis2.setTitleText("Xaxis Right");         xaxis2.setTitleFont(new Font("TimesRoman",Font.PLAIN,20));         xaxis2.setLabelFont(new Font("Helvetica",Font.PLAIN,15)); /* **      Attach the first data set to the Left Axis */         yaxis1 = graph1.createAxis(Axis.LEFT);         yaxis1.attachDataSet(data1);         yaxis1.setTitleText("y=6x10{^4}x^2");         yaxis1.setTitleFont(new Font("TimesRoman",Font.PLAIN,20));         yaxis1.setLabelFont(new Font("Helvetica",Font.PLAIN,15));         yaxis1.setTitleColor( new Color(0,0,255) );         yaxis1.setTitleRotation(0); /* **      Attach the second data set to the Right Axis */         yaxis2 = graph2.createAxis(Axis.RIGHT);         yaxis2.attachDataSet(data2);         yaxis2.setTitleText("y=x^3");         yaxis2.setTitleFont(new Font("TimesRoman",Font.PLAIN,20));         yaxis2.setLabelFont(new Font("Helvetica",Font.PLAIN,15));         yaxis2.setTitleColor(new Color(100,100,255) );         yaxis2.setTitleRotation(0);       }       public static void main(String[] a){          javax.swing.JFrame f = new javax.swing.JFrame();          Applet app = new example1a();          app.init();                    f.getContentPane().add (app);          f.pack();          f.setSize (new Dimension (500, 500));          f.setVisible(true);       } }                     Graph-MathFunctionChart.zip( 190 k)