2D Tree With Leaves Example Code


(define (draw-trunk)
 (separator
  (rotate -90 (vec3 1 0 0))
  (cylinder 'radius .1)
  ))

(define (draw-leaf)
      (separator
	(color (vec3 0 1 0))
	(scale (vec3 1 2 1))
	(translate (vec3 0 1 0))
	(disk)
	)
      )

(define (tree depth)
  (if (> depth 0)

      ; if not at the end of the branch, draw two branches
      (separator
	(draw-trunk)
	
	(separator
	  (translate (vec3 0 1 0))
	  (rotate 45 (vec3 0 0 1))
	  (uscale .75)
	  (tree (- depth 1))
	  )
	
	(separator
	  (translate (vec3 0 1 0))
	  (rotate -45 (vec3 0 0 1))
	  (uscale .7)
	  (tree (- depth 1))
	  )
	)
      
      ; else draw a leaf
      (draw-leaf)
      
      )
  )


Return to 2D Tree
mrl