// pulse.java // pulse and recycle // adapted from a program in basic by H.T. Odum & E. Odum, 1994 import java.applet.*; import java.awt.*; public class pulse extends Applet { Label prompt1, prompt2, prompt3; TextField input1, input2, input3; Button drawbutton; double tm, k2, k4, e, q, qi, c, ci, k1, k3; double f1, f2, q0, c0, dt, m, dq, dc, t, ti; int t0; public void init() { prompt1 = new Label("TM Total Nutrients: "); input1 = new TextField("200", 5); add(prompt1); add(input1); drawbutton = new Button("Draw"); add(drawbutton); prompt2 = new Label("K2 coefficient : "); input2 = new TextField("1", 3); add(prompt2); add(input2); prompt3 = new Label("K4 coefficient : "); input3 = new TextField("20", 3); add(prompt3); add(input3); } public boolean action(Event e, Object o) { tm = (float)Integer.parseInt(input1.getText()); k2 = 0.01f*(float)Integer.parseInt(input2.getText()); k4 = 0.01f*(float)Integer.parseInt(input3.getText()); repaint(); return true; } public void paint(Graphics g) { g.drawRect(0,60,320,180); t=0; ti=0; e=1; q=2; c=2; k1=0.02f; k3=0.0003f; f1=0.05f; f2=0.1; q0=1; c0=1; t0=2; dt=0.5; while ((t*t0)<320) { m=tm-f1*q-f2*c; dq=k1*e*m-k2*q-k3*c*c*q; dc=k2*q+k3*q*c*c-k4*c; qi=q+dq*dt; ci=c+dc*dt; ti=t+dt; g.setColor(Color.blue); g.drawLine((int)t*t0, (int)(240-q*q0), (int)ti*t0, (int)(240-qi*q0)); g.setColor(Color.pink); g.drawLine((int)t*t0, (int)(240-c*c0), (int)ti*t0, (int)(240-ci*c0)); t=ti; q=qi; c=ci; } } } // Manuel Basler & e. Ortega, November 10th 2000