;;; Scheme Recursive Art Contest Entry ;;; ;;; Please do not include your name or personal info in this file. ;;; ;;; Title: ;;; ;;; Description: ;;; ;;; curved lines (define (curve len angle n) ;;; n must always start as 4 (if (> n 0) (begin (forward len) (right angle) (curve len angle (- n 1)) ) ) ) (define (begin-pendown) (begin (pendown) (begin_fill)) ) (define (end-penup) (begin (penup) (end_fill)) ) (define (draw) (speed 0) (penup) (bgcolor "#FFFFE0") ;;; Denero's shirt (define (shirt1) (begin (setposition -420 -200) (setheading 10) (begin-pendown) (curve 30 8 4) (setheading 110) (curve 28 10 4) (curve 28 -35 4) (setheading 45) (curve 20 10 4) (setheading 160))) ;;base (color "#ADD8E6") (shirt1) (curve 50 5 4) (setposition -420 -400) (end-penup) ;;shadow (color "#4682B4") (shirt1) (curve 50 5 1) (setheading -110) (curve 20 -10 4) (setheading -140) (curve 33 32 4) (setheading -30) (curve 28 -10 4) (setheading -150) (curve 45 -8 4) (setposition -420 -400) (end-penup) ;;buttons (setposition -230 -230) (pendown) (curve 30 -3 4) (penup) ;;Denero's face (define (face1) (begin (setposition -340 10) (begin-pendown) (setheading 170) (curve 20 -2 4) (setheading 140) (curve 30 -6 4) (setheading 50) )) ;;neck (color "#FFE4C4") (setposition -290 -180) (begin-pendown) (setheading 3) (curve 20 -2 4) (setposition -222 -100) (setheading 180) (curve 20 -8 4) (setheading -130) (curve 17 18 4) (end_fill) ;;neck shadow (color "#DEB887") (setposition -290 -180) (begin_fill) (setheading 3) (curve 20 -2 4) (setposition -262 -100) (setheading 180) (curve 23 2 4) (setheading -88) (curve 7 10 4) (end-penup) ;;face (color "#FFE4C4") (face1) (curve 24 -5 4) (setheading -23) (curve 28 8 4) (setheading -40) (curve 45 -30 4) (end-penup) ;;face shadow (color "#DEB887") (face1) (curve 24 -5 1) (setheading -58) (curve 30 6 4) (setheading -10) (curve 30 2 4) (end_fill) (penup) ;;eye shadow (setposition -320 0) (setheading 105) (begin-pendown) (curve 29 -11 4) (setheading 110) (curve 13 33 4) (setheading -110) (curve 31 11 4) (end-penup) ;;Denero's hair (define (hair1) (begin (setheading -50) (curve 13 -2 4) (setheading -110) (curve 30 -8 4) (curve 6 -10 4) (setheading 40) (curve 7 5 4) (setheading -150) (curve 30 -34 4) )) ;;base (color "#8B4513") (setposition -340 10) (setheading 165) (begin-pendown) (curve 9 -10 4) (setheading 3) (curve 18 4 4) (setheading 100) (curve 26 -5 4) (setheading 100) (curve 9 30 4) (setheading 30) (curve 10 -9 4) (setheading 140) (curve 5 10 4) (setheading -3) (curve 20 -15 4) (setheading -120) (curve 7 -3 4) (hair1) (end-penup) ;;hair shadow (color "#800000") (setposition -228 95) (begin-pendown) (hair1) (setposition -340 10) (setheading 165) (curve 9 -10 4) (setheading 3) (curve 19 10 4) (setheading -10) (curve 5 10 4) (setheading 50) (curve 18 10 4) (end-penup) ;;ear (color "#DEB887") (setposition -330 -10) (setheading -20) (begin-pendown) (curve 10 -40 4) (curve 15 -23 4) (setposition -320 -30) (end-penup) ;;Denero's face details ;;eyes (color "#000000") (setposition -295 -20) (setheading 65) (begin-pendown) (curve 10 15 4) (setheading -80) (curve 11 -15 4) (end-penup) (setposition -228 -15) (setheading 65) (begin-pendown) (curve 8 17 4) (setheading -78) (curve 9 -15 4) (end_fill) ;;nose (color "#800000") (setheading 170) (curve 9 -20 4) (setheading -155) (curve 6 5 4) (penup) ;;mouth (color "#000000") (setposition -210 -75) (begin-pendown) (setheading -95) (curve 19 10 4) (setheading -165) (curve 9 -17 4) (setheading 120) (curve 15 -15 4) (setheading 25) (curve 7 -3 4) (end-penup) ; teeth (color "#FFFFFF") (setposition -210 -75) (begin-pendown) (setheading -95) (curve 19 10 4) (setheading -165) (forward 9) (setheading 115) (curve 17 -8 4) (end-penup) ; tongue (color "#FFB6C1") (setposition -240 -107) (setheading -40) (begin-pendown) (curve 13 -14 4) (setheading 155) (curve 7 -13 4) (curve 8 -2 3) (end-penup) ;;eyebrows (define (left-brow x) (if (> x 0) (begin (pendown) (setheading 55) (curve 7 10 4) (curve 6 -14 4) (penup) (setheading 180) (forward 15) (setheading -90) (forward 48) (left-brow (- x 1)) ) ) ) (define (right-brow x) (if (> x 0) (begin (pendown) (setheading -55) (curve 5 -10 4) (curve 4 14 4) (penup) (setheading 180) (forward 11.8) (setheading 90) (forward 33.7) (right-brow (- x 1)) ) ) ) (color "#8B4513") (setposition -300 0) (left-brow 7) (setposition -197 5) (right-brow 6) ;;glasses (color "#000000") (setposition -332 -5) (setheading 100) (pendown) (forward 30) (setheading 75) (curve 14 10 4) (setheading 180) (forward 20) (setheading -110) (curve 14.5 13 4) (setheading 0) (forward 20) (penup) ;; nose bridge (setposition -248 -9) (setheading 80) (pendown) (curve 4.5 8 4) (setheading 75) (curve 11.5 10 4) (setheading 180) (forward 18) (setheading -110) (curve 11.7 13 4) (setheading 0) (forward 18) (penup) ;; shirt collar ; left (color "#ADD8E6") (setposition -310 -150) (setheading 45) (begin-pendown) (curve 6 2 4) (setheading 155) (curve 20 -8 4) (setheading 200) (curve 10 -2 4) (setheading -45) (curve 25.7 8 4) (end-penup) ; right (setposition -205 -150) (setheading 135) (begin-pendown) (curve 7 2 4) (setheading -160) (curve 15 6 4) (setheading -15) (curve 8 -4 4) (setheading 40) (curve 12 -9 4) (end-penup) ; shadows (color "#4682B4") (setposition -310 -150) (setheading 45) (begin-pendown) (curve 6 2 4) (setheading 155) (curve 20 -8 2) (setheading 200) (curve 9.5 -2 4) (setheading -35) (curve 30.5 12 2) (end-penup) ;; dark background (define (big-square clr where) ;put in quotes (color clr) (setposition where 500) (begin-pendown) (setposition where -500) (setposition 500 -500) (setposition 500 500) (end-penup) ) (big-square "#000000" -110) (big-square "#191970" -70) (big-square "#4B0082" -35) (big-square "#663399" -5) ;; UNLESS? Denero ; shirt (define (shirt2 where clr) (begin (color clr) (setposition -70 where) (setheading -10) (begin-pendown) (curve 60 3 8) (setheading 90) (curve 100 5 6) (setposition 500 -500) (end-penup) )) (shirt2 -420 "#4682B4") ;(shirt2 -485 "#191970") (shirt2 -570 "#ADD8E6") ; face (define (face2 clr) (begin (color clr) (setposition 10 180) (setheading 160) (begin-pendown) ) ) (define (face3 clr len len2 len3) (begin (face2 clr) (curve 68 4 len) (forward len2) (setheading 110) (curve len3 -5 12) (setheading -1) (curve 68 -3 4) (end-penup) ) ) (face2 "#FFE4C4") (curve 68 4 4) (setheading 135) (curve 57 -6 4) (setheading 45) (curve 55 -6 4) (setheading -1) (curve 70 -3 4) (end-penup) ; face shadow ;(face3 "#CD853F" 4 0 27.5) (face3 "#DEB887" 3 34 27.8) ;#A0522D ;; Denero's hair (define (hair2) (setposition 365 120) (setheading -7) (begin-pendown) (curve 15 -10 4) (setheading -35) (curve 17 10 4) (setheading -135) (curve 50 9 6) (setheading -155) (curve 20 -10 4) ) ; base (color "#800000") (hair2) (setheading -45) (curve 15 8 7) (setheading -140) (curve 15 -8 6) (setheading -45) (curve 15 8 8) (curve 10 20 2) (setheading 40) (curve 45 5 7) (setheading 110) (curve 30 4 4) (setheading 45) (curve 13 4 4) (setheading 125) (curve 32 12 9) (end-penup) ; light hair (color "#A0522D") (hair2) (setheading -23) (curve 18 8 7) (setheading 90) (curve 53 -7 6) (setheading 177) (curve 20 -10 3) (curve 20 12 5) (end-penup) ; teeth (color "#FFFFFF") (setposition 280 -140) (setheading -90) (begin-pendown) (curve 18 -8 4) (setposition 220 -160) (end-penup) ; eyes ; outline (color "#000000") (setposition 70 30) (setheading 85) (begin-pendown) (curve 50 -3 6) (setheading -165) (curve 18 10 12) (end-penup) (begin-pendown) (setposition 70 30) (setheading 145) (curve 10 -8 16) (end-penup) ; white (color "#FFFFFF") (setposition 76 27) (setheading 85) (begin-pendown) (curve 47.5 -3 6) (setheading -165) (curve 17 10 12) (setposition 195 30) (setheading -150) (curve 8 8 8) (curve 11 7 6) (end-penup) ; pupil (color "#808000") (setposition 150 35) (setheading 160) (begin-pendown) (curve 4 -18.3 10) (end-penup) (setposition 270 61) (setheading 160) (begin-pendown) (curve 4.9 -19.3 10) (end-penup) ; fix eyes (color "#DEB887") (setposition 185 60) (setheading 180) (begin-pendown) (curve 20 10 4) (setposition 235 -10) (setheading -35) (curve 25 10 4) (end-penup) ;; Denero's Nose (define (nose ang1 ang2) (setposition 185 30) (setheading -180) (pendown) (curve 20 ang1 5) (setheading 125) (curve 10 ang2 5) (penup) ) (color "#800000") (nose 8 -4) (nose 7.8 -3.8) (penup) ;; Denero eyebrows (define (eyebrow1 ang times clr head) (color clr) (setposition 85 50) (setheading head) (begin-pendown) (curve 15 ang times) (end-penup) ) (define (eyebrow2 ang times clr head) (color clr) (setposition 200 70) (setheading head) (begin-pendown) (curve 20 ang times) (end-penup) ) (eyebrow1 18 8 "#8B4513" 15) (eyebrow1 14 9 "#DEB887" 35) (eyebrow2 12 10 "#8B4513" 20) (eyebrow2 10 10 "#DEB887" 35) ;; Denero's glasses (define (frame len wid) (setheading 75) (pendown) (curve len 3 4) (setheading 165) (curve wid 0 4) (setheading -105) (curve len 3 4) (setheading -15) (curve wid 1 4) (penup) ) (color "#000000") (setposition 50 5) (frame 27 12) (setposition 200 35) (frame 33 13) (pendown) (setheading -100) (curve 11.5 -3 4) (penup) (setposition 200 35) (setheading 75) (curve 33 3 4) (setheading 50) (pendown) (forward 67) (penup) ; ear (setheading 20) (color "#DEB887") (begin-pendown) (curve 20 30 4) (curve 25 20 8) (end-penup) ;; black bar (setposition -500 -300) (color "#000000") (begin-pendown) (setposition 500 -220) (setposition 500 -600) (setposition -500 -600) (end-penup) (setposition -500 200) (begin-pendown) (setposition 600 500) (setposition -500 500) (end-penup) ;; laugh details (color "red") (setposition -380 120) (setheading 20) (pendown) (curve 13 14 4) (penup) (setposition -384 133) (setheading 105) (pendown) (forward 15) (penup) (setposition -362 160) (setheading 160) (pendown) (forward 15) (penup) (setposition -210 160) (setheading 125) (pendown) (curve 13 14 4) (penup) (setposition -195 160) (setheading -150) (pendown) (forward 15) (penup) (setposition -180 140) (setheading -125) (pendown) (forward 15) (penup) ;; "H" (define (H) (pendown) (setheading 180) (forward 20) (setheading 0) (forward 10) (setheading 90) (forward 8) (setheading 0) (forward 10) (setheading 180) (forward 20) (penup) ) (define (A) (setheading 180) (forward 20) (pendown) (setheading 10) (forward 20) (setheading 170) (forward 20) (setheading -10) (forward 10) (setheading -90) (forward 4) (penup) ) (define (comma) (setheading 180) (forward 17) (pendown) (curve 1 10 4) (penup) ) (define (J) (setheading 90) (pendown) (forward 10) (setheading -90) (forward 5) (setheading 180) (forward 15) (curve 2 20 5) (penup) ) (define (K) (setheading 180) (pendown) (forward 20) (setheading 0) (forward 10) (setheading 30) (forward 11) (setheading -150) (forward 11) (setheading 150) (forward 11) (penup) ) (define (period) (setheading 180) (forward 20) (setheading 90) (pendown) (forward 1) (setheading 180) (forward 1) (setheading -90) (forward 1) (setheading 0) (forward 1) (penup) ) (define (U) (setheading 180) (pendown) (forward 15) (curve 6 -40 4) (setheading 0) (forward 25) (penup) ) (define (N) (setheading 180) (pendown) (forward 25) (setheading 0) (forward 25) (setheading 150) (forward 30) (setheading 0) (forward 26) (penup) ) (define (L) (setheading 180) (pendown) (forward 26) (setheading 90) (forward 12) (penup) ) (define (E) (setheading 90) (pendown) (forward 12) (setheading -90) (forward 12) (setheading 180) (forward 13) (setheading 90) (forward 8) (setheading -90) (forward 8) (setheading 180) (forward 13) (setheading 90) (forward 12) (penup) ) (define (S) (setheading 90) (forward 12) (setheading -90) (pendown) (curve 5 -40 4) (setheading 90) (curve 6 40 6) (penup) ) (define (?) (setheading 90) (pendown) (curve 5 40 5) (setheading 180) (forward 10) (penup) (forward 3) (pendown) (forward 2) (penup) ) ;; letters (color "#FFFFFF") (setposition -380 300) (H) (setposition -379 300) (H) (setposition -365 300) (A) (setposition -364 300) (A) (setposition -350 300) (H) (setposition -349 300) (H) (setposition -335 300) (A) (setposition -334 300) (A) (setposition -320 300) (comma) (setposition -319 300) (comma) (setposition -300 300) (J) (setposition -299 300) (J) (setposition -285 300) (K) (setposition -284 300) (K) (setposition -270 300) (period) (setposition -269 300) (period) (setposition -260 300) (period) (setposition -259 300) (period) (setposition -250 300) (period) (setposition -249 300) (period) (setposition 100 -300) (U) (setposition 101 -300) (U) (setposition 120 -300) (N) (setposition 121 -300) (N) (setposition 140 -300) (L) (setposition 141 -300) (L) (setposition 160 -300) (E) (setposition 161 -300) (E) (setposition 180 -300) (S) (setposition 181 -300) (S) (setposition 200 -300) (S) (setposition 201 -300) (S) (setposition 220 -300) (?) (setposition 221 -300) (?) (hideturtle) (exitonclick)) ; Please leave this last line alone. You may add additional procedures above ; this line. (draw)