// coop.java // cooperative existence // adapted from a program in basic by H.T. Odum & E. Odum, 1994. import java.applet.Applet; import java.awt.*; public class coop extends Applet { Label pr1,pr2,pr3,pr4,pr5,pr6; TextField in1,in2,in3,in4,in5,in6; float q1,q2,qi1,qi2,q10,q20,k1,k2,k3,k4,k5,k6,k7,k8,t,ti,r,dq1,dq2,i; public void init() { pr1 = new Label("Start value for Q1: "); in1 = new TextField("8",4); add(pr1);add(in1); pr2 = new Label("Start value for Q2: "); in2 = new TextField("8",4); add(pr2);add(in2); pr3 = new Label("Growth rate for Q1: "); in3 = new TextField("9",4); add(pr3);add(in3); pr4 = new Label("Growth rate for Q2: "); in4 = new TextField("5",4); add(pr4);add(in4); pr5 = new Label("Mortality rate for Q1: "); in5 = new TextField("5",4); add(pr5);add(in5); pr6 = new Label("Mortality rate for Q1: "); in6 = new TextField("5",4); add(pr6);add(in6); } public boolean action(Event e, Object o) { q1 = (float)Integer.parseInt(in1.getText()); q2 = (float)Integer.parseInt(in2.getText()); k5 = 0.01f*(float)Integer.parseInt(in3.getText()); k6 = 0.01f*(float)Integer.parseInt(in4.getText()); k3 = 0.01f*(float)Integer.parseInt(in5.getText()); k4 = 0.01f*(float)Integer.parseInt(in6.getText()); repaint(); return true; } public void paint (Graphics g) { i=10;k1=0.08f;k2=0.04f;k7=0.002f;k8=0.002f; q10=1;q20=1;t=0;ti=0;qi1=q1;qi2=q2; g.drawRect(60,150,320,180); while (t<319) { r=1/(1+k1*q1*q2-k2*q1*q2); if (r<0) r=0; dq1=k5*r*q1*q2-k7*q1*q2-k3*q1; dq2=k6*r*q1*q2-k8*q1*q2-k4*q2; q1+=dq1; q2+=dq2; t+=1; g.setColor(Color.green); g.drawLine((int)(60+ti),(int)(330-qi1*q10),(int)(60+t),(int)(330-q1*q10)); g.setColor(Color.red); g.drawLine((int)(60+ti),(int)(330-qi2*q20),(int)(60+t),(int)(330-q2*q20)); ti=t;qi1=q1;qi2=q2; } } } // Stefan Kontur & E. Ortega. September 2000