;;; Scheme Recursive Art Contest Entry ;;; ;;; Please do not include your name or personal info in this file. ;;; ;;; Title: Factorial Star Art ;;; ;;; Description: ;;; (define color-list '(darkorange1 yellow2)) (define (color-choose n color-list) (define n (modulo n (length color-list))) (if (= n 0) (car color-list) (color-choose (- n 1) (cdr color-list)))) (define (right k) (rt 90) (fd k) (lt 90)) (define (left k) (lt 90) (fd k) (rt 90)) (define (repeat k func) (if (> k 0) (begin (func) (repeat (- k 1) func)) 'done)) (define (helper n) (fd (* 15 n)) (fact-draw (- n 1)) (penup) (back (* 45 n)) (pendown) (lt (/ 360 n))) (define (dot k) (color 'red) (right k) (begin_fill) (circle k) (end_fill) (left k)) (define (fact-draw n) (color (color-choose n color-list)) (if (= n 0) (begin (dot 4) (color (color-choose n color-list))) (repeat n (lambda () (helper n))))) (define (black-canvas) (color 'black) (setpos -1000 1000) (begin_fill) (goto 1000 1000) (goto 1000 -1000) (goto -1000 -1000) (end_fill)) (define (draw-procedure x-pos n) (penup) (seth 15) (setpos x-pos 0) (pendown) (fact-draw n)) (define (draw) (ht) (speed 0) (black-canvas) (draw-procedure -500 3) (draw-procedure -50 4) (draw-procedure 500 5) (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)