;;; Scheme Recursive Art Contest Entry ;;; ;;; Please do not include your name or personal info in this file. ;;; ;;; Title: Christmas Tree ;;; ;;; Description: ;;; ho ho ho! MERRY EARLY CHRISTMAS :) (define (tree l k) (if (= k 0) (begin (fd l) (lt 176) (fd l) ) (begin (fd (/ l 3)) (rt 88) (tree (/ l 3) (- k 1)) (rt 88) (tree (- (/ (* 2 l) 3) (* (/ l 3) 0.0348994967)) (- k 1)) (rt 88) (tree (/ l 3) (- k 1)) (rt 88) (fd (/ l 3)) ) ) ) (define (draw-tree l k) (begin (color 'green) (begin_fill) (rt 90) (fd (* 2 (* l 0.0348994967))) (lt 92) (tree l k) (end_fill) ) ) (define (ornament c r x y) (begin (pu) (goto x y) (pd) (color c) (begin_fill) (circle r) (end_fill) ) ) (define (repeat fn l k) (if (= k 1) (fn l) (begin (fn l) (repeat fn l (- k 1)) ) ) ) (define (third-star l) (begin (fd (/ l 3)) (rt 60) (fd (/ l 3)) (lt 120) (fd (/ l 3)) (rt 60) (fd (/ l 3)) (lt 120) ) ) (define (star l x y) (begin (pu) (goto x y) (pd) (color 'yellow) (begin_fill) (rt 90) (repeat third-star l 3) (end_fill) ) ) (define (draw) ; *YOUR CODE HERE* (begin (ht) (speed 800) (pu) (goto 0 (- 150)) (pd) (draw-tree 300 6) (ornament 'red 5 48 (- 80)) (ornament 'blue 5 (- 38) (- 80)) (ornament 'gold 5 115 (- 45)) (ornament 'blue 5 (- 98) (- 45)) (ornament 'blue 5 72 (- 70)) (ornament 'red 5 (- 62) (- 70)) (ornament 'purple 5 35 (- 3)) (ornament 'gold 5 (- 25) (- 3)) (ornament 'red 5 80 25) (ornament 'blue 5 (- 65) 25) (ornament 'purple 5 (- 40) 72) (ornament 'gold 5 52 72) (ornament 'blue 5 37 102) (ornament 'gold 5 (- 25) 102) (star 24 22 165) (exitonclick) ) ) ; Please leave this last line alone. You may add additional procedures above ; this line. All Scheme tokens in this file (including the one below) count ; toward the token limit. (draw)