; tree in early spring ; tree in early spring ; branches weaving up, sprouting ; into myriad leaves (define (golden x) (/ x 1.618033989)) (define (repeat n f) (if (> n 0) (begin (f) (repeat (- n 1) f) ) ) ) (define (r_circle repeater) (repeat 6 (lambda () (repeat 5 (lambda () (fd 7) (rt 12) )) (repeater) )) ) (define (flower) (repeat 6 (lambda () (r_circle (lambda () '())) (rt 60))) ) (define (ground x) (if (> x 10) (begin (pd) (lt 13) (fd x) (bk x) (rt 13) (pu) (fd 30) (ground (* x 0.90)) ) ) ) (define (brancher size bends_right? pen_width) (begin (if bends_right? (lt 20) (lt 40)) (trunk (/ size 2) (not bends_right?) (golden pen_width)) (rt 60) (trunk (/ size 2) (not bends_right?) (golden pen_width)) (if bends_right? (lt 40) (lt 20)) ) ) (define (bender size bends_right? pen_width fd?) (brancher size bends_right? pen_width) (pensize pen_width) (color 'brown) (repeat 2 (lambda () (if (not fd?) (bk (/ size 2))) (if fd? (if bends_right? (rt 9) (lt 9)) (if bends_right? (lt 9) (rt 9)) ) (if fd? (fd (/ size 2))) )) ) (define (trunk size bends_right? pen_width) (if (> size 5) (begin (pensize pen_width) (color 'brown) (fd (/ size 2)) (rt 68) (trunk (/ size 10) (not bends_right?) (golden (/ pen_width 4))) (lt 143) (trunk (/ size 8) (not bends_right?) (golden (/ pen_width 4))) (rt 75) (bender size bends_right? pen_width #t) (bender size bends_right? pen_width #f) (bk (/ size 2)) ) (begin (color 'green) (rt 90) (fd 5) (bk 10) (fd 5) (lt 90)) ) ) (pu) (bk 400) (pd) (trunk 300 True 10) (pu) (goto -350 250) (rt 6) (pd) (pensize 1) (color 'orange) (r_circle flower) (pu) (goto -500 -415) (seth 90) (color 'green) (ground 300)