(define rgb-average (lambda (color1 color2) (rgb-new (/ (+ (rgb-red color1) (rgb-red color2)) 2) (/ (+ (rgb-green color1) (rgb-green color2)) 2) (/ (+ (rgb-blue color1) (rgb-blue color2)) 2)))) (define image-series (lambda (n width height) (define canvas (image-new width height)) (image-show canvas) (cond ((< n 255) (blah2 canvas (rgb-new n n n))) ((and (>= n 255) (< n 510)) (blah2 canvas (rgb-new 255 (/ n 2) (/ n 3)))) ((and (>= n 510) (< n 765)) (blah2 canvas (rgb-new (/ n 6) 255 (/ n 4)))) ((>= n 765) (blah2 canvas (rgb-new (/ n 8) (/ n 12) 255)))))) (define blah2 (lambda (canvas color) (render-color-tree! (cons color (cons (rgb-average color color-black) color-black)) canvas 0 0 (image-width canvas) (image-height canvas)) (blah2-helper2 canvas color 0) (blah2-helper2 canvas (rgb-average color (rgb-average color (rgb-complement color))) (* (image-height canvas) .2)) (blah2-helper2 canvas (rgb-average color (rgb-complement color)) (* (image-height canvas) .4)) (blah2-helper2 canvas (rgb-average (rgb-complement color) (rgb-average color (rgb-complement color))) (* (image-height canvas) .6)) (blah2-helper2 canvas (rgb-complement color) (* (image-height canvas) .8)) (image-select-ellipse! canvas selection-replace (* (image-width canvas) .7) (* (image-height canvas) .1) (/ (image-width canvas) 5) (/ (image-height canvas) 5)) (image-select-ellipse! canvas selection-add (* (image-width canvas) .7) (* (image-height canvas) .3) (/ (image-width canvas) 5) (/ (image-height canvas) 5))(image-select-ellipse! canvas selection-add (* (image-width canvas) .7) (* (image-height canvas) .5) (/ (image-width canvas) 5) (/ (image-height canvas) 5))(image-select-ellipse! canvas selection-add (* (image-width canvas) .7) (* (image-height canvas) .7) (/ (image-width canvas) 5) (/ (image-height canvas) 5)) (image-compute-pixels! canvas 0 0 (- (image-width canvas) 1) (- (image-height canvas) 1) (lambda (pos) (rgb-new (* (/ (rgb-red (rgb-complement color)) 2) (+ 1 (sin (* pi 0.0017 (position-col pos))))) (* (/ (rgb-green (rgb-complement color)) 2) (+ 1 (sin (* pi 0.0021 (position-col pos))))) (* (/ (rgb-blue (rgb-complement color)) 2) (+ 1 (sin (* pi 0.0023 (position-row pos))))))) ))) (define blah2-helper (lambda (canvas color col row factor) (image-select-ellipse! canvas selection-replace col row (/ (image-width canvas) 5) (/ (image-height canvas) 5)) (context-set-fgcolor! (rgb-new (* (rgb-red color) factor) (* (rgb-green color) factor) (* (rgb-blue color) factor))) (image-fill! canvas))) (define blah2-helper2 (lambda (canvas color row) (blah2-helper canvas color 0 row 1) (blah2-helper canvas color (* (image-width canvas) .2) row .8) (blah2-helper canvas color (* (image-width canvas) .4) row .6) (blah2-helper canvas color (* (image-width canvas) .6) row .4) (blah2-helper canvas color (* (image-width canvas) .8) row .2))) (define render-color-tree! (lambda (ctree image left top width height) (cond ((pair? ctree) (render-color-tree! (car ctree) image left top (/ width 2) height) (render-color-tree! (cdr ctree) image (+ left (/ width 2)) top (/ width 2) height)) (else (image-select-rectangle! image selection-replace left top width height) (context-set-fgcolor! ctree) (image-fill! image) (context-update-displays!) (image-select-nothing! image)))))