(define draw-one-point (lambda (image x y redfunc greenfunc bluefunc) (set-fgcolor (list (mod (redfunc x y) 256) (mod (greenfunc x y) 256) (mod (bluefunc x y) 256))) (blot image x y))) (define draw-diagonal (lambda (image width height redfunc greenfunc bluefunc) (letrec ((kernel (lambda (percent) (if (<= percent 1.0) (let ((x (* percent width)) (y (* percent height))) (draw-one-point image x y redfunc greenfunc bluefunc) (kernel (+ percent .10))))))) (kernel 0)))) (define draw-diagonals (lambda (image width height step redfunc greenfunc bluefunc) (letrec ((kernel (lambda (percent) (if (<= percent 1.0) (begin (draw-diagonal image width (* height percent) redfunc greenfunc bluefunc) (draw-diagonal image (* width percent) height redfunc greenfunc bluefunc) (kernel (+ percent step))))))) (kernel 0))))