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); } }