Source of MultiPlotter.java


  1: import java.awt.*;
  2: 
  3: public abstract class MultiPlotter extends Plotter {
  4: 
  5:   abstract public void initMultiPlotter();
  6: 
  7:   public void init() {
  8:     super.init();
  9:     initMultiPlotter();
 10:   }
 11: 
 12:   final public void addFunction(Function f, Color c) {
 13:     if (numOfFunctions < MAX_FUNCTIONS && f  !=  null) {
 14:       functions[numOfFunctions] = f;
 15:       colors[numOfFunctions++] = c;
 16:     }
 17:   }
 18: 
 19:   protected void plotFunction(Graphics g) {
 20:     for (int i = 0; i < numOfFunctions; i++) {
 21:        if (functions[i] != null) {
 22:          Color c = colors[i];
 23:          if (c != null)
 24:            g.setColor(c);
 25:          else
 26:            g.setColor(Color.black);
 27:            for (int px = 0; px < d.width; px++) {
 28:               try {
 29:                 double x = (double) (px - xorigin) / (double) xratio;
 30:                 double y = functions[i].apply(x);
 31:                 int py = yorigin - (int) (y * yratio);
 32:                 g.fillOval(px - 1, py - 1, 3, 3);
 33:               } catch (Exception  e) {}
 34:            }
 35:        }
 36:     }
 37:   }
 38: 
 39: 
 40:   public double func(double x) {
 41:     return 0.0;
 42:   }
 43: 
 44:   protected static int MAX_FUNCTIONS = 5;
 45:   protected int numOfFunctions = 0;
 46:   protected Function functions[] = new Function[MAX_FUNCTIONS];
 47:   protected Color colors[] = new Color[MAX_FUNCTIONS];
 48: }