;;; Scheme Recursive Art Contest Entry ;;; ;;; Please do not include your name or personal info in this file. ;;; ;;; Title: I like patterns. ;;; ;;; Description: ;;; To like recursion, must love patterns. ;;; Here they are. ;;; Enjoy :-) ;;;;;;;;;;blazingStar ;;;;;;;;;;;;;; (define d 30) (define (drawDiamond length clockwise x y) (forward length) (right (* 45 clockwise)) (forward d) (right (* 135 clockwise)) (forward d) (right (* 45 clockwise)) (forward length) (right (* -45 clockwise)) (setpos x y) ) (define (first i col1 col2 x y) (if (not(= i 8)) (begin (color col1) (begin_fill) (drawDiamond d 1 x y) (right 45) (end_fill) (first (+ i 1) col2 col1 x y) )) ) (define (second1 i col x y) (if (not (= i 8)) (begin (color col) (begin_fill) (drawDiamond (* 2 d) 1 x y) (right 45) (end_fill) (second1 (+ i 1) col x y) )) ) (define (second2 i col x y) (if (not (= i 8)) (begin (color col) (begin_fill) (drawDiamond (* 2 d) -1 x y) (right 45) (end_fill) (second2 (+ i 1) col x y) )) ) (define (third1 i col x y) (if (not (= i 8)) (begin (color col) (begin_fill) (drawDiamond (* 3 d) 1 x y) (right 45) (end_fill) (third1 (+ i 1) col x y) )) ) (define (third2 i col x y) (if (not (= i 8)) (begin (color col) (begin_fill) (drawDiamond (* 3 d) -1 x y) (right 45) (end_fill) (third2 (+ i 1) col x y) )) ) (define (offMid a b) (penup) (forward (* a d)) (right 45) (forward (* b d)) (left 45) (pendown) ) (define (third3 i col x y) (if (not (= i 8)) (begin (offMid -1 1) (color col) (begin_fill) (drawDiamond (* 3 d) 1 x y) (right 45) (end_fill) (third3 (+ i 1) col x y) )) ) (define (blazingStar x y color11 color12 color21 color22 color31 color32 color33) (penup) (setpos x y) (pendown) (third1 0 color32 x y) (third2 0 color33 x y) (third3 0 color33 x y) (second1 0 color22 x y) (second2 0 color21 x y) (first 0 color11 color12 x y) ) ;;;;;;;;;;;;;;;;; windingWays (NOT FINISHED);;;;;;; (define (drawArcPiece color) (begin_fill) (color "#626A6D") (circle (/ 320 3) (/ 360 12)) (right (/ 360 6)) (circle (/ 320 3) (-(/ 360 12))) (right (/ 360 6)) (circle (/ 320 3) (/ 360 12)) (end_fill) ) (define (drawArcBlock color cur) (if (not (= cur 2)) (drawArcPiece color) (right 90) (drawArcPiece color) (setpos 160 160) )) (define (drawSquare length cur) (if (not (= cur 4)) (forward length) (right 90) ) ) (define (drawSubBlock col) (setheading 0) (color col) (begin_fill) (drawSquare (/ 320 3)) (end_fill) ) (define (gotoSubBlockCenter) (penup) (forward (/ (/ 320 3) 2)) (right 90) (forward (/ (/ 320 3) 2)) (pendown) ) ;;;;;;;;;;;;;;;;;;;logCabin (NOT DONE) (CANT FIGURE DEBUG :( ) ;;;;;;;;;;;;;;;;;;;; (define lw (quotient 320 9)) (define lh (- 320 lw)) (define (drawFrame cur func) (if (not (= cur 2)) (begin (forward lw) (right 90) (forward (- lh (* (* func lw) 2))) (right 90) (drawFrame (+ 1 cur) func) ) ) ) (define (moveToNextFrame func) (begin (penup) (forward (- 320 (* (* func lw) 2))) (pendown) (right 90)) ) (define (moveToNextLayer cur) (if (not(= 2 cur)) (begin (penup) (forward lw) (right (* 90 (- 1 (* cur 2)))) (pendown) (moveToNextLayer (+ 1 cur))) ) ) (define (helper cur col) (begin_fill) (color col) (drawFrame 0 cur) (end_fill) (moveToNextFrame cur) ) (define (logCabin cur num color1 color11 color2 color21 color3 color31 color4 color41 color5 color51) (define colorListFrame (list color1 color11 color2 color21 color3 color31 color4 color41 color5 color51)) (if (not(= cur 4)) (if (not (= num 4)) (begin (helper cur (getEle (+ (* 2 cur) (modulo num 2)) colorListFrame)) (logCabin cur (+ num 1) color1 color11 color2 color21 color3 color31 color4 color41 color5 color51)) (begin (moveToNextLayer 0) (logCabin (+ 1 cur) 0 color1 color11 color2 color21 color3 color31 color4 color41 color5 color51)) ) ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define colorList1 (list "#FFC400" "#FFE599" "#FF5627" "#FF8C00" "#E26768" "#92063D" "#C90035")) (define colorList2 (list "#F7FCC5" "#EDF792" "#91C46C" "#287D7D" "#34ADAD" "#1C344C" "#112233")) (define colorList3 (list "#F2F2E9" "#D9D7C5" "#A69580" "#736766" "#734854" "#F2F2E9" "#D9D7C5")) (define colorList4 (list "#FDEDD0" "#BCF1ED" "#FF634D" "#FD795B" "#FFF0AA" "#FDEDD0" "#BCF1ED")) (define colorList5 (list "#655499" "#6093BF" "#68D4D4" "#56BF95" "#17996B")) (define colorList6 (list "#48474A" "#5F5266" "#99718B" "#CF8998" "#FFADBF")) (define colorList7 (list "#0C2437" "#163346" "#112C41" "#1D3D52" "#112D42" "#1D4056" "#22475B" "#3D6373" "#50899B" "#72A5B1")) (define colorList8 (list "#1D1D1D" "#272728" "#282829" "#2C2C2D" "#323233" "#3E3E40" "#727275" "#727275" "#727275" "#727275")) (define (getEle i lst) (if (= 0 i) (car lst) (getEle (- i 1) (cdr lst)) ) ) (define (square cur) (if (not(= cur 4)) (begin (forward 320) (right 90) (square (+ cur 1)) )) ) (define (draw) (print lw) (print (screen_width)) (speed 100) (bgcolor "black") (pendown) (begin_fill) (setpos 0 0) (color "#626A6D") (square 0) (right 90) (end_fill) (begin_fill) (setpos 0 0) (color "#BE1F48") (square 0) (right 90) (end_fill) (begin_fill) (setpos 0 0) (color "#284661") (square 0) (right 90) (end_fill) (begin_fill) (setpos 0 0) (color "#313132") (square 0) (right 90) (end_fill) (penup) (setpos -320 0) (pendown) (logCabin 0 0 (getEle 0 colorList8) (getEle 1 colorList8) (getEle 2 colorList8) (getEle 3 colorList8) (getEle 4 colorList8) (getEle 5 colorList8) (getEle 6 colorList8) (getEle 7 colorList8) (getEle 8 colorList8) (getEle 9 colorList8)) (blazingStar -160 160 (getEle 0 colorList1) (getEle 1 colorList1) (getEle 2 colorList1) (getEle 3 colorList1) (getEle 4 colorList1) (getEle 5 colorList1) (getEle 6 colorList1)) (penup) (setpos 0 0) (pendown) (logCabin 0 0 (getEle 0 colorList1) (getEle 0 colorList2) (getEle 1 colorList1) (getEle 1 colorList2) (getEle 2 colorList2) (getEle 2 colorList2) (getEle 3 colorList1) (getEle 3 colorList2) (getEle 4 colorList1) (getEle 4 colorList2)) (blazingStar 160 160 (getEle 0 colorList2) (getEle 1 colorList2) (getEle 2 colorList2) (getEle 3 colorList2) (getEle 4 colorList2) (getEle 5 colorList2) (getEle 6 colorList2)) (penup) (setpos -320 -320) (pendown) (logCabin 0 0 (getEle 0 colorList7) (getEle 1 colorList7) (getEle 2 colorList7) (getEle 3 colorList7) (getEle 4 colorList7) (getEle 5 colorList7) (getEle 6 colorList7) (getEle 7 colorList7) (getEle 8 colorList7) (getEle 9 colorList7)) (blazingStar -160 -160 (getEle 0 colorList3) (getEle 1 colorList3) (getEle 2 colorList3) (getEle 3 colorList3) (getEle 4 colorList3) (getEle 5 colorList3) (getEle 6 colorList3)) (penup) (setpos 0 -320) (pendown) (logCabin 0 0 (getEle 6 colorList1) (getEle 5 colorList1) "#FF3562" "#E40345" "#D10F41" "#DC0D46" "#1B1B3A" (getEle 7 colorList7) (getEle 8 colorList7) (getEle 9 colorList7)) (blazingStar 160 -160 (getEle 0 colorList4) (getEle 1 colorList4) (getEle 2 colorList4) (getEle 3 colorList4) (getEle 4 colorList4) (getEle 5 colorList4) (getEle 6 colorList4)) (exitonclick)) ; Please leave this last line alone. You may add additional procedures above ; this line. (draw)