import java.awt.*; import java.applet.*; // copyright, M Paez, 1999, U of Antioquia, r Landau OSU public class Tree extends Applet { double mxx,myy,bxx,byy; public void Treeplot(Graphics g) { int i,max,seed; int pex,pey,k; double x,y,r,xn,yn; max=30000; seed=6811; x=0.5; /* initial position */ y=0.0; k=1; coormundo(-0.8,1.8,0.8,0.0); setBackground(Color.black); g.setColor(Color.green); for(i=1 ; i<=max; i++) { r=Math.random(); if (r<=0.1) { xn = 0.05*x; yn = 0.6*y; } else if((r>0.1) && (r<0.2)) { xn = 0.05*x; yn = -0.5*y+1.0; } else if ((r>0.2) && (r<0.4)) { xn = 0.46*x-0.32*y; yn = 0.39*x+0.38*y+0.6; } else if((r>0.4) && (r<0.6)) { xn = 0.47*x-0.15*y; yn = 0.17*x+0.42*y+1.1; } else if ((r>0.6) && (r<0.8)) { xn = 0.43*x+0.28*y; yn = -0.25*x+0.45*y+1.0; } else { xn = 0.42*x+0.26*y; yn = -0.35*x+0.31*y+0.7; } x = xn; y = yn; pex=(int)(mxx*x+bxx); pey=(int)(myy*y+byy); g.drawLine(pex,pey,pex,pey); if((i%3000)==0){ g.setColor(Color.red); g.fillOval(120-k,200-k,2+k,2+k); k=k+1; } if(i<28000)g.setColor(Color.green); if((i>28000)&&(i<29000))g.setColor(Color.yellow); if(i>29000)g.setColor(Color.orange); } } void coormundo(double xiz,double ysu,double xde,double yinf) { double maxx,maxy,xxfin,xxcom,yyin,yysu; maxx=600; maxy=450; xxcom=0.15*maxx; xxfin=0.75*maxx; yyin=0.8*maxy; yysu=0.2*maxy; mxx=(xxfin-xxcom)/(xde-xiz); bxx=0.5*(xxcom+xxfin-mxx*(xiz+xde)); myy=(yyin-yysu)/(yinf-ysu); byy=0.5*(yysu+yyin-myy*(yinf+ysu)); } public void paint(Graphics g) { Treeplot(g); g.setColor(Color.white); g.fillOval(500,30,50,50); g.setColor(Color.black); g.fillOval(512,23,50,50); showStatus("Done"); } }