;;; Scheme Recursive Art Contest Entry ;;; ;;; Please do not include your name or personal info in this file. ;;; ;;; Title: ;;; ;;; Description: ;;; ; colors (define bg_colors (list "#6600cc" "#660ac2" "#6619b3" "#6629a3" "#663399" "#663d8f" "#664785" "#66527a" "#665c70")) (define (rectangle start height c) (setpos 400 start) (pendown) (color c) (begin_fill) (setpos 400 (- start height)) (setpos -400 (- start height)) (setpos -400 start) (end_fill) (penup) ) (define (gradient start colors) (cond ((not (null? colors)) (rectangle start h (car colors)) (gradient (- start h) (cdr colors)) ) ) ) (define (tree len c) (color c) (pendown) (cond ((> len 2) (fd len) (left 60) (tree (* len 0.66) c) (right 90) (tree (* len 0.66) c) (left 30) (back len) )) (penup) ) (define (pattern1) (tree 100 "white") (right 45) (tree 75 "#fff7e6") (right 45) ) (define (pattern2) (tree 100 "white") (right 90) ) (define (repeat-pattern f times) (cond ((< times 1) (print "done drawing")) (else (f) (repeat-pattern f (- times 1)) ) ) ) (define (line) (pendown) (setpos 100 1) (setpos -100 1) (setpos 100 2) (setpos -100 2) (penup) ) (define (square c len times) (cond ((< times 1) (print "squares are done")) (else (color c) (pendown) (fd len) (right 90) (fd len) (right 90) (fd len) (right 90) (fd len) (right 5) (penup) (square c len (- times 1)) ) ) ) (define (circles c size deg times) (cond ((< times 1) (print "circles are done")) (else (color c) (pendown) (circle size) (right deg) (penup) (circles c size deg (- times 1)) ) ) ) (define top (/ (screen_height) 2)) (define w (- (/ (screen_width) 2))) (define h (/ (screen_height) (length bg_colors))) (define (draw) (speed 0) (right 90) (penup) (setpos w top) (gradient top bg_colors) (setpos 0 0) (square "#ff9999" 20 20) (square "#ccffff" 200 16) (circles "#ff9999" 300 10 36) (circles "#ffefcc" 300 5 20) (circles "#ffefcc" (- 300) 5 20) (setpos 0 0) (setheading 0) (repeat-pattern pattern1 4) (setpos 1 0) (repeat-pattern pattern2 4) (setpos 2 0) (repeat-pattern pattern2 4) (setpos 0 1) (color "white") (line) (hideturtle) (exitonclick) ) ; Please leave this last line alone. You may add additional procedures above ; this line. (draw)