// P0603.java:$B39O)<y(B

import java.awt.*;
import Glib.*;

public class P0603 extends xApplet
{	xTurtle T;
	double my=172.0,vpz=1.4*my,dx=1.7*my,dz=0.6*my;
	double Leng=2.0,k=0.7,ky=1.45;

	public void init()
	{	app_init(7);
		T=new xTurtle(getGraphics());
		T.setshdspectra(1,2);
	}

	public void paint(Graphics g)
	{	T.set0(P0,0);
		double d=(double)AppSize.height/240;
		for(int i=0;i<240;i++)
			T.frectangle(0,xMath.fint(i*d),
				AppSize.width,xMath.fint((i+1)*d),i);
		T.set0(CA.x,(int)(ky*CA.y),1);
		T.disk(-xMath.fint(0.3*my),xMath.fint(1.9*my),
			xMath.fint(0.2*my),240+4);
		for(int n=0;n<40;n++)
		{	double h=n*dz/vpz+1;
			xPointD p0=new xPointD(dx/h,my/h);
			double leng0=1.1*p0.y;
			T.setlp(-p0.x,-p0.y);
			T.setangle(90.0);
			tree(leng0);
			T.setlp(p0.x,-p0.y);
			T.setangle(90.0);
			tree(leng0);
		}
	}

	private void tree(double leng)
	{	T.move(leng,240,(int)(leng/18)+1);
		if(leng>Leng)
		{	T.turn(10.0);
			tree(k*leng);
			T.turn(-20.0);
			tree(k*leng);
			T.turn(10.0);
		}
		T.warp(-leng);
	}
}
