(define image-series (lambda (n width height) (define image (image-new width height)) (image-show image) (let kernel ((start-col 0) (start-row 0) (end-col 0) (end-row height) (hoff (/ height n)) (voff (/ width n))) (draw-colored-parallel-lines! image n start-col start-row end-col end-row hoff voff) (draw-colored-horizontal-parallel-lines! image n 0 0 width 0 voff hoff) (context-set-brush! "Circle (03)") (let kernel ((iteration n) (color2 "white") (color3 "white") (col (/ width 2)) (row (/ height 2)) (inner-radius (/ height 6)) (stamp-radius (/ height 10)) (theta (/ pi 36)) (m 36)) (cond ((>= 0 n) image) (else (roll-2! image color2 color2 col row inner-radius stamp-radius theta m) (roll-2! image color3 color3 col row inner-radius stamp-radius (* -1 theta) m) (kernel (- (/ n 100) 10) color2 color3 col row (- inner-radius 5) (- stamp-radius 5) theta m))))))) Other Procedures, (define draw-colored-parallel-lines! (lambda (image n start-col start-row end-col end-row hoff voff) (let kernel ((width (image-width image)) (height (image-height image))) (cond ((> n 0) (context-set-fgcolor! (position->color (/ start-col (/ width 5)) (/ start-row (/ height 5)))) (image-draw-line! image start-col start-row end-col end-row) (draw-colored-parallel-lines! image (- n 1) (+ hoff start-col) (+ voff start-row) (+ hoff end-col) (+ voff end-row) hoff voff)))))) (define draw-colored-horizontal-parallel-lines! (lambda (image n start-col start-row end-col end-row hoff voff) (let kernel ((width (image-width image)) (height (image-height image))) (cond ((> n 0) (context-set-fgcolor! (position->color (/ start-col (/ width 5)) (/ start-row (/ height 5)))) (image-draw-line! image start-col start-row end-col end-row) (draw-colored-parallel-lines! image (- n 1) (+ hoff start-col) (+ voff start-row) end-col end-row hoff voff))))))