examples/ex-144.rkt
#lang racket
(require (planet wcy/mpost-wrapper))
(provide main)
(define (main)
  (define (degrade q p M N)
    (let ((a (length p))
          (b (length q)))
      (for ((i (in-range 0 (+ 1 M))))
           (draw (apply op.. 
                        `(,(mediation (/ i M) (point-of 0 p) (point-of 0 q))
                          ,@(for/list ((j (in-range 0 (+ 1 N))))
                                      (mediation (/ i M )
                                                 (point-of (op* a (/ j N)) p)
                                                 (point-of (op* b (/ j N)) q)))))))))
  (let* ((u '1cm))
    (degrade (op.. (point (op* -0.1 u)
                          (op* -0.1 u))
                   (point (op* 0.1 u)
                          (op* 0.1 u))
                   'cycle)
             (op-- (point (op* -1 u)
                          (op* -1 u))
                   (point (op*  1 u)
                          (op* -1 u))
                   (point (op*  1 u)
                          (op*  1 u))
                   (point (op* -1 u)
                          (op*  1 u))
                   'cycle) 10 100)))