;;; Scheme Recursive Art Contest Entry ;;; ;;; Please do not include your name or personal info in this file. ;;; ;;; Title: Lost ;;; ;;; Description: ;;; Trapped in an unfamiliar city, ;;; and start to miss ;;; California (bgcolor "#D6D7DD") ;;; (speed 1000) ;;; (define (draw) (draw_bridge) (draw_building_white) (draw_building_black) (draw_windows) ) (define (draw_bridge) ;;;4 pillars (color "black") (bridge-lowline) (penup) (goto -100 205) (pendown) (pillar1) (penup) (goto -40 210) (rt 114.5) (pendown) (pillar1) (lt 180) (penup) (goto 160 55) (pendown) (rt 180) (pillar2) (penup) (goto 195 59) (lt 90) (pendown) (pillar2) ;;; horizontal pillars (penup) (goto -100 202) (lt 90) (pendown) (hor_pillar 4 0 60 60 3 100) (penup) (goto 160 53) (hor_pillar 4 0 40 31 2 100) ;;;main lines (main-lines) (lt 143) (ver-lines -240 -63 16 20 27 24 10 0) (ver-lines -40 210 260 18.1 -29.5 -27 9 0) (ver-lines 122 -15 50 18.1 17 21 5 0) (ver-lines 195 59 135 15 -19 -13 8 0) ) (define (bridge-lowline) (setpos 0 0) (penup) (goto 300 -120) (pendown) (begin_fill) (rt -70) (circle 1000 33) (lt 5) (circle 780 -43) (end_fill) ) (define (pillar length limit n length_between dir) (cond ((< n limit) (fd length) (rt dir) (fd (/ length 30)) (lt dir) (pillar (+ length length_between) limit (+ n 1) length_between dir)) (else nil))) (define (pillar1) (begin_fill) (lt 115) (pillar 60 4 0 3 90) (lt 87) (fd 20) (lt 92.5) (pillar 70 4 0 -3 -90) (fd 3) (lt 90) (fd 2) (lt 90) (fd 3) (rt 90) (fd 3) (lt 90) (fd 3) (end_fill) ) (define (pillar2) (begin_fill) (pillar 31 4 0 3 90) (lt 93) (fd 14) (lt 87) (pillar 40 4 0 -3 -90) (lt 90) (fd 1) (rt 90) (fd 2) (lt 90) (fd 2) (lt 90) (fd 2) (rt 90) (fd 2) (end_fill) ) (define (hor_pillar limit n long length length_between angle) (cond ((< n limit) (pendown) (begin_fill) (lt angle) (fd long) (rt (- 180 angle)) (fd (/ length 6)) (rt angle) (fd long) (rt (- 180 angle)) (fd (/ length 6)) (end_fill) (rt 200) (penup) (forward (+ length length_between -1)) (hor_pillar limit (+ n 1) long (+ length length_between) length_between angle) ) (else nil)) ) (define (main-lines) ;;;line1 (penup) (goto -100 205) (begin_fill) (pendown) (rt 28) (fd 331) (lt 179) (fd 330) (end_fill) ;;;line2 (penup) (goto -40 210) (pendown) (begin_fill) (rt 187) (fd 354) (lt 179) (fd 354) (goto -40 210) (end_fill) ;;;line3 (penup) (goto -100 205) (begin_fill) (pendown) (rt 100) (fd 290) (lt 179) (fd 290) (end_fill) ;;;line4 (penup) (goto -40 210) (pendown) (begin_fill) (lt 170) (fd 280) (lt 179) (fd 280) (goto -40 210) (end_fill) ;;;line5 (penup) (goto 160 55) (pendown) (begin_fill) (lt 104) (fd 90) (lt 179) (fd 89) (end_fill) ;;;line6 (penup) (goto 195 59) (pendown) (begin_fill) (rt 179) (fd 125) (lt 179) (fd 124) (end_fill) ;;;line7 (penup) (goto 160 55) (pendown) (begin_fill) (rt 90) (fd 210) (lt 179) (fd 209) (end_fill) ;;;line8 (penup) (goto 195 59) (pendown) (begin_fill) (rt 185) (fd 220) (lt 179) (fd 219) (end_fill) ) (define (ver-lines x y len addx addy addlen limit n) (cond ((< n limit) (penup) (goto x y) (pendown) (forward len) (ver-lines (+ x addx) (+ y addy) (+ len addlen) addx addy addlen limit (+ n 1))) (else nil) ) ) (define (draw_building_white) (color "#9D9EA2") (white_block 295 -90 314 -95 -190) (white_block 215 -60 260 -70 -190) (white_block 142 0 170 -10 -190) ;;tower (penup) (begin_fill) (goto 55 230) (pendown) (goto 70 128) (goto 85 124) (goto 85 -180) (goto 55 -180) (goto 55 230) (end_fill) (white_block -20 -20 10 -28 -180) (white_block -110 60 -70 50 -180) (white_block -210 50 -175 38 -180) (white_block -290 -100 -250 -110 -180) ) (define (white_block a b c d e) (penup) (begin_fill) (goto a b) (pendown) (goto c d) (goto c e) (goto a e) (goto a b) (end_fill)) (define (draw_building_black) (color "#0F0F0E") (penup) (setpos -345 -200) (pendown) (begin_fill) (goto 335 -200) (goto 335 -190) (goto 315 -180) (goto 315 -190) (goto 295 -190) ;;;building 1 (goto 295 -90) (goto 275 -94) (goto 275 -180) (goto 215 -190) (goto 215 -60) (goto 185 -66) (goto 185 -185) (goto 150 -185) (goto 150 -145) (goto 145 -144) (goto 145 -135) (goto 142 -135) (goto 142 0) (goto 112 -3) (goto 112 -156) (goto 55 -180) (goto 55 -190) ;;tower (goto 55 230) (goto 40 130) (goto 30 129) (goto 32 20) (goto 20 -170) (goto -20 -180) (goto -20 -20) (goto -60 -24) (goto -60 -180) (goto -110 -180) (goto -110 60) (goto -150 56) (goto -150 -175) (goto -210 -180) (goto -210 50) (goto -240 45) (goto -240 -175) (goto -250 -175) (goto -250 -180) (goto -290 -180) (goto -290 -100) (goto -330 -105) (goto -330 -180) (goto -345 -190) (goto -345 -200) (end_fill) ) (define (draw_windows) (lt 180.5) (ver-lines 215 -190 129 5.5 -0.5 -0.5 9 0) (ver-lines 142 -190 188 5.5 -0.7 -0.7 6 0) (ver-lines -110 -180 240 4 -0.5 -0.5 11 0) (ver-lines -290 -180 79 4 -0.5 -0.5 11 0) (rt 103) (ver-lines 215 -60 46 0 -5 0 26 0) (ver-lines -110 60 40 0 -40 0 6 0) (ver-lines 55 130 31 0 -8 0 38 0) (rt 4) (ver-lines -210 50 36 0 -4 0 60 0) ) ; Please leave this last line alone. You may add additional procedures above ; this line. (hideturtle) (draw)