/*********************** * Document: RK_G.java ***********************/ import java.awt.*; public class RK_G extends Canvas { final int MaxN = 100; //Maximum number of subintervals Dimension d; double[] xArray = new double[MaxN+1]; double[] yArray = new double[MaxN+1]; double x_0D, y_0D, bD, ymin, ymax, h, dir; int tick, deltaTick, nI, counter = -1; public void paint(Graphics g) { if (counter > -1) { d = this.size(); g.setColor(Color.black); g.drawLine(0, yScaler(0.0), d.width, yScaler(0.0)); //x-axis if (x_0D*bD <= 0) g.drawLine(xScaler(0.0), 0, xScaler(0.0), d.height - 6); //y-axis tick = (int)x_0D; // start of x-ticks deltaTick = 1 + (int)(bD - x_0D)/12; do { if (tick != 0) { g.drawString(tick+"", xScaler(tick) - 4, yScaler(0.0) + 11); g.drawLine(xScaler(tick), yScaler(0.0) - 2, xScaler(tick), yScaler(0.0)); } tick = tick + deltaTick; } while (tick <= bD); //end of x-ticks if (counter > 0) { for (int i = 1; i <= counter; i++) { if (i%2 == 0) g.setColor(Color.red); else g.setColor(Color.magenta); g.drawLine(xScaler(xArray[i-1]), yScaler(yArray[i-1]), xScaler(xArray[i]), yScaler(yArray[i])); } } } } private int xScaler(double x) { return (int)(5 + (d.width - 10)*(x - x_0D)/(bD - x_0D)); } private int yScaler(double y) { return (int)((d.height - 11)*(ymax - y)/(ymax - ymin)); } } //end of RK_G