;;; Scheme Recursive Art Contest Entry ;;; ;;; Please do not include your name or personal info in this file. ;;; ;;; Title: A Lonely Night ;;; ;;; Description: ;;; (define (draw) ; YOUR CODE HERE (define (draw-tree height depth x y) (setheading 0) (color "blue") (draw-tree-base (* depth 4) depth x y) (setheading 0) (draw-branch height depth) ) (define (draw-tree-base base trunk x y) (if (<= base trunk) nil (begin (pu) (setposition x y) (pd) (setheading 90) (forward base) (draw-tree-base (* base 0.9) trunk (+ x (* base 0.05)) (+ y 1)) ) ) ) (define (draw-branch len depth) (pd) (color "blue") (draw-line len depth) (cond ((<= depth 1) (begin (color "pink") (begin_fill) (circle 1.5) (end_fill)) ) (else (begin (right 20) (draw-branch (quotient len 1.25) (- depth 1)) (left 25) (draw-branch (quotient len 1.5) (- depth 2)) (left 20) (draw-branch (quotient len 1.3) (- depth 0.5)) (right 25) ) ) ) (pu) (backward len) ) (define (draw-line len thickness) (pd) (begin_fill) (forward len) (left 90) (forward thickness) (left 90) (forward len) (left 90) (forward thickness) (end_fill) (pu) (left 90) (forward len) (pd) ) (define (draw-sky) (define (draw-sky-helper x y r g b) (if (>= r 1) nil (begin (color (rgb r g b)) (pu) (setheading 0) (setposition x y) (left 90) (pd) (forward (* x 2)) (draw-sky-helper x (- y 1) (+ r 0.003) (+ g 0.003) (+ b 0.003)) ) ) ) (draw-sky-helper 500 350 0 0 0) ) (define (draw-ground) (define (draw-ground-helper x y r g b) (if (or (>= r 1) (>= g 1) (>= b 1)) nil (begin (color (rgb r g b)) (pu) (setheading 0) (setposition x y) (left 90) (pd) (forward (* x 2)) (draw-ground-helper x (+ y 1) (+ r 0.0005) (+ g 0.0028) (+ b 0.0005)) ) ) ) (draw-ground-helper 500 -330 0.8 0 0.8) ) (define (draw-moon) (define (draw-moon-helper x y) (color "white") (pu) (setposition x y) (setheading 270) (pd) (begin_fill) (circle 100 200) (setheading 129) (circle 150 -82) (end_fill) ) (draw-moon-helper -150 280) ) (speed 0) (hideturtle) (draw-sky) (draw-moon) (draw-ground) (pu) (setposition 250 -100) (draw-tree 75 4 250 -100) (setposition -150 -174) (draw-tree 88 5 -150 -174) (setposition 100 -275) (draw-tree 100 5 100 -275) (exitonclick)) ; Please leave this last line alone. You may add additional procedures above ; this line. (draw)