
include misc.e
include graphics.e

if graphics_mode(18) then
end if

procedure cambio()
    while get_key()=-1 do
    end while
    clear_screen()
end procedure

procedure circulo()
    for i=0  to 200*PI by .03 do
	pixel(WHITE,{300,300}+
	{200*sin(i), 200*cos(i)}+
	20*sin(30.1*i)*{sin(i),cos(i)}
	)
    end for
    pixel(WHITE, {300,400})
end procedure


procedure arbol(sequence inicio, atom angulo, atom longitud, atom beta,
atom prop_ppal, atom prop_lat_izq, atom prop_lat_der)
sequence final
    final = inicio+longitud*{cos(angulo),-sin(angulo)}
    draw_line (WHITE, {inicio,final})
    if longitud > 2 then
	arbol(final, angulo, longitud*prop_ppal,beta, prop_ppal, prop_lat_izq,
	prop_lat_der)
	
	arbol(final, angulo+beta/2, longitud*prop_lat_izq, beta, prop_ppal, 
	prop_lat_izq, prop_lat_der)
	
	arbol(final, angulo-beta/2, longitud*prop_lat_der, beta, prop_ppal, 
	prop_lat_izq, prop_lat_der)
    
    end if
end procedure
 

circulo()

pixel(WHITE,{300,400})
 

--Helecho 1
  arbol({300,400},PI/2,80,PI/2,.8,.3,.3)

cambio() 
--Helecho 2
  arbol({300,400},PI/2,80,PI/3,.7,.3,.2)
cambio()
  arbol({300,400},PI/2,80,PI/3,.7,.3,.22)
cambio()
  arbol({300,400},PI/2,80,PI/3,.7,.3,.24)
cambio()
  arbol({300,400},PI/2,80,PI/3,.7,.3,.26)
cambio()
  arbol({300,400},PI/2,80,PI/5,.7,.3,.28)
cambio()
  arbol({300,400},PI/2,80,PI/5,.7,.3,.30)
cambio()
  arbol({300,400},PI/2,80,PI/5,.7,.3,.32)
cambio()
  arbol({300,400},PI/2,80,PI/5,.7,.3,.34)
cambio()
  arbol({300,400},PI/2,80,PI,.7,.4,.4)
cambio()
  arbol({300,400},PI/2,80,PI/3,0,.7,.7)
cambio()
  arbol({300,400},PI/2,80,PI/5,0,.7,.7)
 cambio()
  arbol({300,400},PI/2,80,PI/3,0,.6,.55)
cambio()
 
 
 for i=0  to PI/2 by .1 do
  arbol({300,400},PI/2,80,i,0,.7,.7)
  cambio()
 end for
 
 for i=0  to .85 by .1 do
  arbol({300,400},PI/2,80,PI/3,i,.5,.5)
  cambio()
 end for
 
 for i=0  to .85 by .1 do
  arbol({300,400},PI/2,80,PI/3,.7*i,i,.5)
  cambio()
 end for
 
 for i=0  to .98  by .02 do
  arbol({300,400},PI/2,80,PI/3,.35,.1,i)
  cambio()
 end for
 circulo()

if graphics_mode(-1) then
    
end if
