;;; Scheme Recursive Art Contest Entry ;;; ;;; Please do not include your name or personal info in this file. ;;; ;;; Title: The Blue and Gold Shall Consume the Red ;;; ;;; Description: ;;; As it swirls around, ;;; The spirit of Cal consumes ;;; The balls of Stanford> (define (draw) ; *YOUR CODE HERE* (define (rings size) (circle size) (if (> size 2) (begin (rings (- size 1))) 'done) ) (define (tri x y deg size linecol fillcol dir) (penup) (setposition x y) (setheading deg) (color_rgb linecol) (begin_fill) (pendown) (fd (* size 50)) (cond ((eq? dir 'right) (rt 90)) (else (lt 90))) (fd (* size 50)) (cond ((eq? dir 'right) (rt 135)) (else (lt 135))) (cond ((eq? dir 'right) (begin (rings (* size 10)) (rings (* size 5)))) (else (begin (rings (* size -10)) (rings (* size -5))))) (fd (* size 70.710678118654752440084436210485)) (color_rgb fillcol) (end_fill) ) (define (flower x y increment wholedeg size flowerturn linecol fillcol flowernum) (cond ((= 0 (modulo flowernum 2)) (define dir 'right)) (else (define dir 'left))) (tri x y (+ flowerturn wholedeg) size linecol fillcol dir) (if (< (+ wholedeg increment) 360) (begin (flower x y increment (+ wholedeg increment) size flowerturn linecol fillcol flowernum)) 'done) ) (define (final x y increment size turn linecola fillcola linecolb fillcolb flowernum sizedec turnincrement) (define fillcol fillcolb) (define linecol linecolb) (if (= 0 (modulo flowernum 2)) (begin (define fillcol fillcola) (define linecol linecola)) 'done) (flower x y increment 0 size turn linecol fillcol flowernum) (if (> (car fillcola) 0) (begin (define fillcola (list (- (car fillcola) 0.1) (car (cdr fillcola)) (car (cdr (cdr fillcola)))))) 'done) (if (> (car (cdr fillcola)) 0) (begin (define fillcola (list (car fillcola) (- (car (cdr fillcola)) 0.1) (car (cdr (cdr fillcola)))))) 'done) (if (> (car (cdr (cdr fillcola))) 0) (begin (define fillcola (list (car fillcola) (car (cdr fillcola)) (- (car (cdr (cdr fillcola))) 0.1)))) 'done) (if (> (car fillcolb) 0) (begin (define fillcolb (list (- (car fillcolb) 0.1) (car (cdr fillcolb)) (car (cdr (cdr fillcolb)))))) 'done) (if (> (car (cdr fillcolb)) 0) (begin (define fillcolb (list (car fillcolb) (- (car (cdr fillcolb)) 0.1) (car (cdr (cdr fillcolb)))))) 'done) (if (> (car (cdr (cdr fillcolb))) 0) (begin (define fillcolb (list (car fillcolb) (car (cdr fillcolb)) (- (car (cdr (cdr fillcolb))) 0.1)))) 'done) (if (> (car linecola) 0) (begin (define linecol (list (- (car linecola) 0.1) (car (cdr linecola)) (car (cdr (cdr linecola)))))) 'done) (if (> (car (cdr linecola)) 0) (begin (define linecola (list (car linecola) (- (car (cdr linecola)) 0.1) (car (cdr (cdr linecola)))))) 'done) (if (> (car (cdr (cdr linecola))) 0) (begin (define linecola (list (car linecola) (car (cdr linecola)) (- (car (cdr (cdr linecola))) 0.1)))) 'done) (if (> (car linecolb) 0) (begin (define linecolb (list (- (car linecolb) 0.1) (car (cdr linecolb)) (car (cdr (cdr linecolb)))))) 'done) (if (> (car (cdr linecolb)) 0) (begin (define linecolb (list (car linecolb) (- (car (cdr linecolb)) 0.1) (car (cdr (cdr linecolb)))))) 'done) (if (> (car (cdr (cdr linecolb))) 0) (begin (define linecolb (list (car linecolb) (car (cdr linecolb)) (- (car (cdr (cdr linecolb))) 0.1)))) 'done) (if (> flowernum 0) (begin (final x y increment (/ size sizedec) (+ turn turnincrement) linecola fillcola linecolb fillcolb (- flowernum 1) sizedec (+ 10 turnincrement))) 'done) ) (speed 0) (final 0 0 30 3.2 0 (list 1 1 0) (list 0 0 1) (list 0 1 0) (list 0 0 0) 10 1.2 5) (hideturtle) (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)