;;; Scheme Recursive Art Contest Entry ;;; ;;; Please do not include your name or personal info in this file. ;;; ;;; Title: The Hangry, Hangry Centipede ;;; ;;; Description: ;;; Angered by 61A grades, ;;; the caterpillar ate and ate, ;;; but Daddy made him a derpy centipede. ;Thought I'd end up with Sean ;But he wasn't a match ;Wrote some songs about Ricky ;Now I listen and laugh ;Even almost got married ;And for Pete, I'm so thankful ;Wish I could say, "Thank you" to Malcolm ;'Cause he was an angel ;One taught me love ;One taught me patience ;And one taught me pain ;Now, I'm so amazing ;I've loved and I've lost ;But that's not what I see ;So, look what I got ;Look what you taught me ;And for that, I say ;Thank you, next (next) ;Thank you, next (next) ;Thank you, next ;I'm so f**kin' grateful for my ex ;Thank you, next (next) ;Thank you, next (next) ;Thank you, next (next) ;I'm so f**kin' ;Spend more time with my friends ;I ain't worried 'bout nothin' ;Plus, I met someone else ;We havin' better discussions ;I know they say I move on too fast ;But this one gon' last ;'Causeā€¦ (define (draw) (define (repeat k fn) (if (> k 0) (begin (fn) (repeat (- k 1) fn)) nil)) (speed 10) (bgcolor "black") (define (drawtriangle size corner angle clr) (color clr) (penup) (setposition (car corner) (car (cdr corner))) (setheading angle) (pendown) (repeat 3 (lambda () (fd size) (left 120))) ) (define (repeat_triangle size angle size_inc a_inc limit clr) (drawtriangle size '(0 0) angle (rgb (- 1 clr) clr (* clr 0.5))) (if (< 0 limit) (repeat_triangle (+ size size_inc) (+ angle a_inc) size_inc a_inc (- limit 1) (+ clr 0.01))) ) (define (drawhexagon size center angle clr) (color clr) (penup) (setposition (car center) (car (cdr center))) (setheading angle) (fd size) (left 120) (pendown) (repeat 6 (lambda () (fd size) (left 60))) ) (define (repeat_hexagon size angle size_inc a_inc limit clr center) (drawhexagon size center angle (rgb clr 0 0)) (if (< 0 limit) (repeat_hexagon (+ size size_inc) (+ angle a_inc) size_inc a_inc (- limit 1) (+ clr 0.01) center)) ) (define (drawcentertriangle size center angle clr) (color clr) (penup) (setposition (car center) (car (cdr center))) (setheading angle) (fd size) (left 150) (pendown) (repeat 3 (lambda () (fd (* (sqrt 3) size)) (left 120))) ) (define (repeat_centertriangle size angle size_inc a_inc limit clr center) (drawcentertriangle size center angle (rgb (* 0.75 clr) (* 0.75 clr) 1)) (if (< 0 limit) (repeat_centertriangle (+ size size_inc) (+ angle a_inc) size_inc a_inc (- limit 1) (+ clr 0.01) center)) ) (define (repeat_centertriangle_black size angle size_inc a_inc limit clr center) (drawcentertriangle size center angle (rgb 0 0 clr)) (if (< 0 limit) (repeat_centertriangle_black (+ size size_inc) (+ angle a_inc) size_inc a_inc (- limit 1) (+ clr 0.01) center)) ) (define (repeat_concentric_triangle size size_inc limit clr center) (drawcentertriangle size center 180 (rgb (* 0.75 clr) 0.2 (* 0.75 clr) )) (if (< 0 limit) (repeat_concentric_triangle (- size size_inc) size_inc (- limit 1) (+ clr 0.02) center)) ) (repeat_centertriangle 25 0 1 5 60 0.05 '(-500 -200)) (repeat_centertriangle 25 0 1 5 60 0.05 '(-375 -150)) (repeat_centertriangle 25 0 1 5 60 0.05 '(-305 -35)) (repeat_centertriangle 25 0 1 5 60 0.05 '(-210 60)) (repeat_centertriangle 25 0 1 5 60 0.05 '(-85 110)) (repeat_hexagon 120 0 1 5 60 0.05 '(135 110)) (repeat_centertriangle_black 10 0 0.5 5 48 0 '(85 150)) (repeat_centertriangle_black 10 0 0.5 5 48 0 '(185 150)) (repeat_concentric_triangle 15 0.5 30 0 '(80 70)) (repeat_concentric_triangle 15 0.5 30 0 `(,(+ 80 (* 1 (sqrt 3) 15)) 65)) (repeat_concentric_triangle 15 0.5 30 0 `(,(+ 80 (* 2 (sqrt 3) 15)) 60)) (repeat_concentric_triangle 15 0.5 30 0 `(,(+ 80 (* 3 (sqrt 3) 15)) 65)) (repeat_concentric_triangle 15 0.5 30 0 `(,(+ 80 (* 4 (sqrt 3) 15)) 70)) (penup) (setposition 1000 1000) (exitonclick)) ; Please leave this last line alone. You may add additional procedures above ; this line. (draw)