#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (let* ((n 5) (O (point 0 0)) (A (op* '1cm 'up)) (B ((rotate-around A 30 ) (op* '2cm 'up))) (C (op* '2cm 'up)) (D ((rotate-around A -30) (op* '2cm 'up)))) (define (draw-point x) (draw x #:withpen (scale '4bp 'pencircle))) (define ((rotate-draw i f) obj) (f (rotate (/ (* i 360) n) obj))) (for ((i (in-range n))) ((rotate-draw i draw) (op-- O A C)) ((rotate-draw i draw) (op-- B A D)) (map (rotate-draw i draw-point) (list A B C D)))))