import java.applet.Applet;
import java.awt.*;
import java.util.*;
public class m0104020_fractal extends Applet{
  double scale=0.7625;
  int n=5;
  int angle=80;
  int w,h;
  double ang=90.0;
  double len=70.0;

  int i=2;
  double anga=125.0;
  double lena=30.0;

  public void paint(Graphics g){
    w=getSize().width;
    h=getSize().height;
    double x0,y0;
    double xx0,yy0;
    x0=w/2;
    y0=h/2-70;
    xx0=w/2.8;
    yy0=0+450;

    g.setColor(Color.black);
    g.fillRect(0,0,w,h);
    g.setColor(new Color(100,255,40));
	g.fillOval(w/2-5,h/2, 10, 400);
	g.setColor(new Color(208,186,100));
	g.fillOval(w/2-13,h/2, 30, 15);


    rtree(g,n,x0,y0,len,ang);
    watage(g,i,xx0,yy0,lena,anga);
  }
  public void rtree(Graphics g,int nn,double x0,double y0,
                    double len,double ang){
    if(nn<=0){
      return;
    }if(nn>1){
      g.setColor(new Color(255,255,255));
    }if(nn==2){
      g.setColor(new Color(255,255,255));
    }if(nn==3){
      g.setColor(new Color(255,255,255));
    }if(nn==4){
      g.setColor(new Color(255,255,255));
    }
    double x,y;
    final double RAD=Math.PI/180.0;
    x=len*Math.cos(RAD*ang)+x0;
    y=len*Math.sin(RAD*ang)+y0;

    g.drawLine((int)x0,(int)(h-y0),(int)x,(int)(h-y));

    int ang_r1=-70;
	int ang_r2=-30;
    int ang_r3=30;
    int ang_r4=70;
    int ang_r5=105;
    int ang_r6=-105;
    rtree(g,nn-1,x,y,len*scale,ang-ang_r1);
    rtree(g,nn-1,x,y,len*scale,ang+ang_r2);
    rtree(g,nn-1,x,y,len*scale,ang+ang_r3);
    rtree(g,nn-1,x,y,len*scale,ang-ang_r4);
    rtree(g,nn-1,x,y,len*scale,ang+ang_r5);
    rtree(g,nn-1,x,y,len*scale,ang+ang_r6);
    g.setColor(new Color(255,255,255));
  }

  public void watage(Graphics g,int in,double xx0,double yy0,
                      double lena,double anga){
	if(in<=0){
      return;
    }if(in>1){
      g.setColor(new Color(255,255,255));
    }if(in==2){
      g.setColor(new Color(255,255,255));
    }if(in==3){
      g.setColor(new Color(255,255,255));
    }if(in==4){
      g.setColor(new Color(255,255,255));
    }
      double xx,yy;
      final double RAD=Math.PI/180.0;
      xx=lena*Math.cos(RAD*anga)+xx0;
      yy=lena*Math.sin(RAD*anga)+yy0;

      g.drawLine((int)xx0,(int)(h-yy0),(int)xx,(int)(h-yy));

      int ang_r1=-50;
  	  int ang_r2=-20;
      int ang_r3=20;
      int ang_r4=50;
      int ang_r5=73;
      int ang_r6=-73;
      watage(g,in-1,xx,yy,lena*scale,anga-ang_r1);
      watage(g,in-1,xx,yy,lena*scale,anga+ang_r2);
      watage(g,in-1,xx,yy,lena*scale,anga+ang_r3);
      watage(g,in-1,xx,yy,lena*scale,anga-ang_r4);
      watage(g,in-1,xx,yy,lena*scale,anga+ang_r5);
      watage(g,in-1,xx,yy,lena*scale,anga+ang_r6);
      g.setColor(new Color(255,255,255));
  }
}

