;;; Scheme Recursive Art Contest Entry ;;; ;;; Please do not include your name or personal info in this file. ;;; ;;; Title: Circles... or Triangle? ;;; ;;; Description: ;;; The never-ending battle between ;;; circles and triangles will always ;;; cause a recursive confusion. (define c (list "#0000ff" "#ff0000" "#00ff00" "#ffff00" "#ff8000" "#9933ff")) (define (move x y) (begin (penup) (setposition x y) (pendown))) (define (f i x y r co) (if (> i 0) (if (null? co) (begin (move x y) (color (car c)) (circle r) (f (- i 1) (- x 2) (+ y (+ r r) -2) (- r 2) (cdr c)) (f (- i 1) (+ x (- (* r (sqrt 2))) -2 (sqrt 2)) (+ y (- (* r (sqrt 2))) (sqrt 2)) (- r 2) (cdr c)) (f (- i 1) (+ x (* r (sqrt 2)) (- (sqrt 2)) -2) (+ y (- (* r (sqrt 2))) (sqrt 2)) (- r 2) (cdr c))) (begin (move x y) (color (car co)) (circle r) (f (- i 1) (- x 2) (+ y (+ r r) -2) (- r 2) (cdr co)) (f (- i 1) (+ x (- (* r (sqrt 2))) -2 (sqrt 2)) (+ y (- (* r (sqrt 2))) (sqrt 2)) (- r 2) (cdr co)) (f (- i 1) (+ x (* r (sqrt 2)) (- (sqrt 2)) -2) (+ y (- (* r (sqrt 2))) (sqrt 2)) (- r 2) (cdr co))) ) (if (null? co) nil nil ) ) ) (define (draw) (bgcolor "#000000") (showturtle) (speed 90000) (f 7 10 0 22 c) (hideturtle) (exitonclick)) ; Please leave this last line alone. You may add additional procedures above ; this line. (draw)