examples/ex-117.rkt
#lang racket
(require (planet wcy/mpost-wrapper))
(provide main)
(define (main)
  (let* ((u '2cm)
         (A (op* u 'up))
         (B (mediation 0.5 A (rotate 72 A)))
         (C (op* 0.8 B))
         (p (op-- (mediation  -0.2 A (rotate 72 A))
                  (mediation  1.2 A (rotate 72 A)))))
    (for ((i (in-range 6)))
         (draw (rotate (* i 72) p)))
    (let* ((p* (path B '--- C '.. (rotate (* 2 72) C) (dir-spec 'right)))
           (p  (op& (path (op- (point-of 0 p*)
                               (op* '4mm (unitvector (direction-of 0 p*))))
                          '--
                          (point-of 0 p*))
                    p*
                    (path (point-of 2 p*) 
                          '--
                          (op+ (point-of 2 p*)
                               (op* '4mm (unitvector (direction-of 2 p*)))))))
           (E (intersectionpoint p (rotate 72 p)))
           (q (cutbefore p (fullcircle  '-2mm E)))
           (r (cutafter p (fullcircle '2mm E))))
      (for ((i (in-range 6)))
           (let ((rotate-it (lambda (x) (rotate (* 72 i) x))))
             (for ((x (in-list (list q r A))))
                  (draw (rotate-it x)))
             (for ((x (in-list (list A B C))))
                  (draw (rotate-it x) #:withpen (scale '4bp 'pencircle))))))))