(define image-string-art!
  (lambda (image n edge-col edge-row width height)
    (let ((col-spacing (/ width (- n 1)))
          (row-spacing (/ height (- n 1))))
      (let kernel ((i 0))
        (cond ((< i n)
               (let ((col1 edge-col)
                     (row1 (+ edge-row (* (- n 1 i) row-spacing)))
                     (col2 (+ edge-col (* i col-spacing)))
                     (row2 edge-row))
                 ;(print (list col1 row1 col2 row2)) ; for debugging
                 (image-draw-line! image
                                   col1 row1
                                   col2 row2))
               (context-update-displays!)
               (kernel (+ i 1))))))))

(define image-string-art2!
  (lambda (image n edge-col edge-row width height)
    (let ((col-spacing (- 0   (/ width (- n 1))))
          (row-spacing (- 0   (/ height (- n 1)))))
      (let kernel ((i 0))
        (cond ((< i n)
               (let ((col1 edge-col)
                     (row1 (+ edge-row (* (- n 1 i) row-spacing)))
                     (col2 (+ edge-col (* i col-spacing)))
                     (row2 edge-row))
                 ;(print (list col1 row1 col2 row2)) ; for debugging
                 (image-draw-line! image
                                   col1 row1
                                   col2 row2))
               (context-update-displays!)
               (kernel (+ i 1))))))))

(define series-pupil
  (lambda (root)  
    (drawing->image 
     (drawing-vshift
     (drawing-hshift
      (drawing-unit-circle 50)
      (* root 12.5))
     (* root 12.5)))))

(define image-series
  (lambda (n width height)
    (let* ((image (image-new width height))
      (ticker (turtle-new image))
       (root (/ width 25)))
      (turtle-set-color! ticker "red")
      (turtle-teleport! ticker (* root 12.5) (* root 8))
      (turtle-turn! ticker (* n 90))
      (turtle-forward! ticker (* 5 root))
      (turtle-turn! ticker (* n 60))
      (turtle-forward! ticker (* 4 root))
      (turtle-turn! ticker (* n 45))
      (turtle-forward! ticker (* 3 root))
      (turtle-turn! ticker (* n 30))
      (turtle-forward! ticker (* 2 root))
      (turtle-turn! ticker (* n 15))
      (turtle-forward! ticker   root)
      (turtle-turn! ticker (* n 5))
      (turtle-forward! ticker (* .5 root)
      (turtle-turn! ticker (* n 5))
      (turtle-forward! ticker   root)
      (turtle-turn! ticker (* n 15))
      (turtle-forward! ticker (* 2 root))
      (turtle-turn! ticker (* n 30))
      (turtle-forward! ticker (* 3 root))
      (turtle-turn! ticker (* n 45))
      (turtle-forward! ticker (* 4 root))
      (turtle-turn! ticker (* n 60))
      (turtle-forward! ticker (* 5 root))
       (turtle-turn! ticker (* n 90))
      (turtle-forward! ticker (* 5 root))
      (turtle-turn! ticker (* n 60))
      (turtle-forward! ticker (* 4 root))
      (turtle-turn! ticker (* n 45))
      (turtle-forward! ticker (* 3 root))
      (turtle-turn! ticker (* n 30))
      (turtle-forward! ticker (* 2 root))
      (turtle-turn! ticker (* n 15))
      (turtle-forward! ticker   root)
      (turtle-turn! ticker (* n 5))
      (turtle-forward! ticker (* .5 root))
      (turtle-turn! ticker (* n 5))
      (turtle-forward! ticker   root)
      (turtle-turn! ticker (* n 15))
      (turtle-forward! ticker (* 2 root))
      (turtle-turn! ticker (* n 30))
      (turtle-forward! ticker (* 3 root))
      (turtle-turn! ticker (* n 45))
      (turtle-forward! ticker (* 4 root))
      (turtle-turn! ticker (* n 60))
      (turtle-forward! ticker (* 5 root))
      (turtle-turn! ticker (* n 90))
      (turtle-forward! ticker (* 5 root))
      (turtle-turn! ticker (* n 60))
      (turtle-forward! ticker (* 4 root))
      (turtle-turn! ticker (* n 45))
      (turtle-forward! ticker (* 3 root))
      (turtle-turn! ticker (* n 30))
      (turtle-forward! ticker (* 2 root))
      (turtle-turn! ticker (* n 15))
      (turtle-forward! ticker   root)
      (turtle-turn! ticker (* n 5))
      (turtle-forward! ticker (* .5 root))
       (turtle-turn! ticker (* n 5))
      (turtle-forward! ticker   root)
      (turtle-turn! ticker (* n 15))
      (turtle-forward! ticker (* 2 root))
      (turtle-turn! ticker (* n 30))
      (turtle-forward! ticker (* 3 root))
      (turtle-turn! ticker (* n 45))
      (turtle-forward! ticker (* 4 root))
      (turtle-turn! ticker (* n 60))
      (turtle-forward! ticker (* 5 root))
      (turtle-turn! ticker (* n 90))
      (turtle-forward! ticker (* 5 root))
      (turtle-turn! ticker (* n 60))
      (turtle-forward! ticker (* 4 root))
      (turtle-turn! ticker (* n 45))
      (turtle-forward! ticker (* 3 root))
      (turtle-turn! ticker (* n 30))
      (turtle-forward! ticker (* 2 root))
      (turtle-turn! ticker (* n 15))
      (turtle-forward! ticker   root)
      (turtle-turn! ticker (* n 5))
      (turtle-forward! ticker (* .5 root))
       (turtle-turn! ticker (* n 5))
      (turtle-forward! ticker   root)
      (turtle-turn! ticker (* n 15))
      (turtle-forward! ticker (* 2 root))
      (turtle-turn! ticker (* n 30))
      (turtle-forward! ticker (* 3 root))
      (turtle-turn! ticker (* n 45))
      (turtle-forward! ticker (* 4 root))
      (turtle-turn! ticker (* n 60))
      (turtle-forward! ticker (* 5 root))
      (turtle-turn! ticker (* n 90))
      (turtle-forward! ticker (* 5 root))
      (turtle-turn! ticker (* n 60))
      (turtle-forward! ticker (* 4 root))
      (turtle-turn! ticker (* n 45))
      (turtle-forward! ticker (* 3 root))
      (turtle-turn! ticker (* n 30))
      (turtle-forward! ticker (* 2 root))
      (turtle-turn! ticker (* n 15))
      (turtle-forward! ticker   root)
      (turtle-turn! ticker (* n 5))
      (turtle-forward! ticker (* .5 root)
      (turtle-turn! ticker (* n 5))
      (turtle-forward! ticker   root)
      (turtle-turn! ticker (* n 15))
      (turtle-forward! ticker (* 2 root))
      (turtle-turn! ticker (* n 30))
      (turtle-forward! ticker (* 3 root))
      (turtle-turn! ticker (* n 45))
      (turtle-forward! ticker (* 4 root))
      (turtle-turn! ticker (* n 60))
      (turtle-forward! ticker (* 5 root))
      (turtle-turn! ticker (* n 90))
      (turtle-forward! ticker (* 5 root))
      (turtle-turn! ticker (* n 60))
      (turtle-forward! ticker (* 4 root))
      (turtle-turn! ticker (* n 45))
      (turtle-forward! ticker (* 3 root))
      (turtle-turn! ticker (* n 30))
      (turtle-forward! ticker (* 2 root))
      (turtle-turn! ticker (* n 15))
      (turtle-forward! ticker   root)
      (turtle-turn! ticker (* n 5))
      (turtle-forward! ticker (* .5 root))
       (turtle-turn! ticker (* n 5))
      (turtle-forward! ticker   root)
      (turtle-turn! ticker (* n 15))
      (turtle-forward! ticker (* 2 root))
      (turtle-turn! ticker (* n 30))
      (turtle-forward! ticker (* 3 root))
      (turtle-turn! ticker (* n 45))
      (turtle-forward! ticker (* 4 root))
      (turtle-turn! ticker (* n 60))
      (turtle-forward! ticker (* 5 root))
      (turtle-turn! ticker (* n 90))
      (turtle-forward! ticker (* 5 root))
      (turtle-turn! ticker (* n 60))
      (turtle-forward! ticker (* 4 root))
      (turtle-turn! ticker (* n 45))
      (turtle-forward! ticker (* 3 root))
      (turtle-turn! ticker (* n 30))
      (turtle-forward! ticker (* 2 root))
      (turtle-turn! ticker (* n 15))
      (turtle-forward! ticker   root)
      (turtle-turn! ticker (* n 5))
      (turtle-forward! ticker (* .5 root))
       (turtle-turn! ticker (* n 5))
      (turtle-forward! ticker   root)
      (turtle-turn! ticker (* n 15))
      (turtle-forward! ticker (* 2 root))
      (turtle-turn! ticker (* n 30))
      (turtle-forward! ticker (* 3 root))
      (turtle-turn! ticker (* n 45))
      (turtle-forward! ticker (* 4 root))
      (turtle-turn! ticker (* n 60))
      (turtle-forward! ticker (* 5 root))
      (turtle-turn! ticker (* n 90))
      (turtle-forward! ticker (* 5 root))
      (turtle-turn! ticker (* n 60))
      (turtle-forward! ticker (* 4 root))
      (turtle-turn! ticker (* n 45))
      (turtle-forward! ticker (* 3 root))
      (turtle-turn! ticker (* n 30))
      (turtle-forward! ticker (* 2 root))
      (turtle-turn! ticker (* n 15))
      (turtle-forward! ticker   root)
      (turtle-turn! ticker (* n 5))
      (turtle-forward! ticker (* .5 root))
       (turtle-turn! ticker (* n 5))
      (turtle-forward! ticker   root)
      (turtle-turn! ticker (* n 15))
      (turtle-forward! ticker (* 2 root))
      (turtle-turn! ticker (* n 30))
      (turtle-forward! ticker (* 3 root))
      (turtle-turn! ticker (* n 45))
      (turtle-forward! ticker (* 4 root))
      (turtle-turn! ticker (* n 60))
      (turtle-forward! ticker (* 5 root))
      (turtle-turn! ticker (* n 90))
      (turtle-forward! ticker (* 5 root))
      (turtle-turn! ticker (* n 60))
      (turtle-forward! ticker (* 4 root))
      (turtle-turn! ticker (* n 45))
      (turtle-forward! ticker (* 3 root))
      (turtle-turn! ticker (* n 30))
      (turtle-forward! ticker (* 2 root))
      (turtle-turn! ticker (* n 15))
      (turtle-forward! ticker   root)
      (turtle-turn! ticker (* n 5))
      (turtle-forward! ticker (* .5 root)
      (turtle-turn! ticker (* n 5))
      (turtle-forward! ticker   root)
      (turtle-turn! ticker (* n 15))
      (turtle-forward! ticker (* 2 root))
      (turtle-turn! ticker (* n 30))
      (turtle-forward! ticker (* 3 root))
      (turtle-turn! ticker (* n 45))
      (turtle-forward! ticker (* 4 root))
      (turtle-turn! ticker (* n 60))
      (turtle-forward! ticker (* 5 root))
      (image-string-art! image n 0 0 width height)
      (image-string-art2! image n width height width height)
      (image-show image)))))))


