;;; Scheme Recursive Art Contest Entry ;;; ;;; Please do not include your name or personal info in this file. ;;; ;;; Title: Fun with Fractals ;;; ;;; Description: SierpiƄski triangles and binary trees ;;; (define (draw) (define pen '( "#F50000" "#F50029" "#F40051" "#F4007A" "#F300A2" "#F300CA" "#F300F3" "#CA00F2" "#A100F2" "#7900F1" "#5000F1" "#2800F0" "#0000F0" "#2800F0" "#5000F1" "#7900F1" "#A100F2" "#CA00F2" "#F300F3" "#F300CA" "#F300A2" "#F4007A" "#F40051" "#F50029" )) (define (h c d a p) (color (car p)) (if (= c 0) (begin (forward d) (backward d)) (begin (forward d) (left a) (h (- c 1) (* d (/ 4 5)) a (cdr p)) (right (* a 2)) (h (- c 1) (* d (/ 4 5)) a (cdr p)) (left a) (color (car p)) (backward d))) ) (define (f r p) (cond ((> r (+ (/ (screen_width) 2) 100)) nil) ((null? p) (f r pen)) (else (begin (color (car p)) (setheading 90) (penup) (forward 15) (setheading 0) (pendown) (circle r) (f (+ r 15) (cdr p))))) ) (define (t c d p) (color (car p)) (if (> c 0) (begin (forward d) (left 120) (t (- c 1) (/ d 2) (cdr (cdr p))) (forward d) (left 120) (forward d) (left 120) (t (- c 1) (/ d 2) (cdr (cdr p))) (forward d) (left 120) (forward d) (left 120) (t (- c 1) (/ d 2) (cdr (cdr p))) (forward d) (left 120) (t 0 d p)) (begin (forward (* d 1)) (left 120) (forward (* d 1)) (left 120) (forward (* d 1)) (left 120)) ) ) (f 15 pen) (penup) (setposition 150 0) (pendown) (left 90) (t 5 300 pen) (left 180) (backward 300) (t 5 300 pen) (forward 100) (left 180) (h 10 100 30 pen) (left 180) (forward 100) (h 10 100 30 pen) (exitonclick)) (hideturtle) (speed 0) ; Please leave this last line alone. You may add additional procedures above ; this line. (draw)