(define image-series (lambda (n width height) (let* ((canvas (image-new width height)) (rgb-scale (modulo n 255)) (color1 (rgb-new rgb-scale (/ rgb-scale 2) (- 255 rgb-scale))) (color2 (rgb-new (/ rgb-scale 2) rgb-scale (- 255 rgb-scale))) (color3 ((o rgb-lighter rgb-lighter rgb-lighter) color2)) (a (/ height n)) (b (/ width n)) (c 0) (kernel (lambda (a b c n width height) (cond ((>= c n) (image-show canvas)) ((< c n) (image-draw-line! canvas (- width 1) (* a c) (- width (* b c)) (- height 1)) (kernel a b (+ c 5) n width height)))))) (image-show canvas) (fractal-image! canvas image-select-rectangle! image-fill! color1 color2 0 0 width height (+ 1 (modulo n 3)) 1) (context-set-fgcolor! color3) (context-set-brush! "Circle (01)") (kernel a b c n width height)))) (define fractal-image! (lambda (image shape-proc fill-proc color1 color2 left top right bottom level rsize) (cond ((= level 0) (context-set-fgcolor! color1) (context-set-brush! "Circle (01)") (shape-proc image selection-replace left top (- right left) (- bottom top)) (fill-proc image) (image-select-nothing! image) (context-update-displays!)) (else (let* ((midcol1 (round (+ left (* (- right left) (/ rsize 10))))) (midcol2 (if (< rsize 4) (round (+ midcol1 (* (- right left) (/ rsize 5)))) (round (+ midcol1 (* (- right left) (/ rsize 20)))))) (midrow1 (round (+ top (* (- bottom top) (/ rsize 10))))) (midrow2 (if (< rsize 4) (round (+ midrow1 (* (- bottom top) (/ rsize 5)))) (round (+ midrow1 (* (- bottom top) (/ rsize 20))))))) (fractal-image! image shape-proc fill-proc color1 color2 left top midcol1 midrow1 (- level 1) rsize) (fractal-image! image shape-proc fill-proc color2 color1 midcol1 top midcol2 midrow1 (- level 1) rsize) (fractal-image! image shape-proc fill-proc color1 color2 midcol2 top right midrow1 (- level 1) rsize) (fractal-image! image shape-proc fill-proc color2 color1 left midrow1 midcol1 midrow2 (- level 1) rsize) (fractal-image! image shape-proc fill-proc color1 color2 midcol1 midrow1 midcol2 midrow2 (- level 1) rsize) (fractal-image! image shape-proc fill-proc color2 color1 midcol2 midrow1 right midrow2 (- level 1) rsize) (fractal-image! image shape-proc fill-proc color1 color2 left midrow2 midcol1 bottom (- level 1) rsize) (fractal-image! image shape-proc fill-proc color2 color1 midcol1 midrow2 midcol2 bottom (- level 1) rsize) (fractal-image! image shape-proc fill-proc color1 color2 midcol2 midrow2 right bottom (- level 1) rsize))))))