#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))))))))