;;; Scheme Recursive Art Contest Entry ;;; ;;; Please do not include your name or personal info in this file. ;;; ;;; Title: ;;; ;;; Description: ;;; (define (tree size level) (cond ((= level 1) (forward size) (leaf 20 2) (penup) (forward (- 0 size)) (pendown)) ((< level 6) (forward (/ size 2)) (left 45) (color "#556b2f") (tree (/ size 1.61803) (- level 1)) (color "#556b2f") (right 90) (tree (/ size 1.61803) (- level 1)) (color "#556b2f") ;Gold (left 45) (forward (- 0 (/ size 2)))) (else (branch size level)))) (define (leaf size level) (cond ((= level 1) (forward size) (forward (- 0 size)) (pendown)) (else (forward (/ size 2)) (left 45) (color "#556b2f") (leaf (/ size 1.61803) (- level 1)) (color "#556b2f") (right 90) (leaf (/ size 1.61803) (- level 1)) (color "#556b2f") ;Gold (left 45) (leaf (/ size 1.61803) (- level 1)) (forward (- 0 (/ size 2)))))) (define (branch size level) (color "#98fb98") (forward (/ size 2)) (left 45) (color "#556b2f") ;Dodger Blue (tree (/ size 1.61803) (- level 1)) (color "#556b2f") ;Yellow Green (right 22.5) (tree (/ size 1.61803) (- level 1)) (color "#556b2f") (right 45) (tree (/ size 1.61803) (- level 1)) (color "#556b2f") (right 22.5) (tree (/ size 1.61803) (- level 1)) (color "#8b4513") ;Gold (left 45) (forward (- 0 (/ size 2)))) (define (trunk size level) (color "#8b4513") (rt 90) (forward 26) (lt 90) (forward 150) (rt 45) (forward 70) (tree (/ size 2) level) (color "#8b4513") (lt 165) (forward 30) (rt 115) (tree (/ size 1.6) level) (color "#8b4513") (lt 115) (forward 38) (rt 60) (forward 15) (rt 45) (tree 50 5) (color "#8b4513") (lt 45) (forward 30) (rt 15) (tree (/ size 3) level) (color "#8b4513") (left 165) (forward 43) (rt 30) (forward 150)) (define (picture x y) (cond ((eq? y 2) (penup)) (else (trunk x y) (rt 160) (forward (+ x 20)) (rt 20) (picture (/ x 1.618) (- y 1))))) (define (picture2 x y) (cond ((eq? y 2)(penup)) (else (trunk x y) (penup) (lt 90) (forward 26) (pendown) (lt 70) (forward ( + x 20)) (penup) (lt 110) (forward 26) (rt 90) (pendown) (picture2 (/ x 1.618) (- y 1))))) (define (arrow base length level) (cond ((= level 1) (penup) (rt 90) (forward base) (pendown) (lt 90) (forward (* 2 base)) (lt 90) (forward (* 2 base)) (lt 90) (forward base) (lt 90) (forward (* 2 base)) (lt 180) (forward (* 2 base)) (lt 90) (forward base) (penup)) (else (pendown) (rt 90) (forward (/ base 2)) (lt 100) (forward length) (rt 100) (forward 20) (lt 120) (forward 50) (lt 120) (forward 50) (lt 120) (forward 20) (rt 100) (forward length) (lt 100) (forward (/ base 2)) (lt 90) (penup) (forward (+ length 60)) (arrow (/ base 1.618) (/ length 1.618) (- level 1))))) (define draw ( (penup) (goto 300 (- 0 300)) (pendown) (picture 200 7) (goto (- 0 300) (- 0 300)) (pendown) (picture2 200 7) (goto 13 -300) (color "black") (arrow 60 100 5) (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)