#lang scribble/manual @(begin (require scribble/manual) (require scribble/core) (require scribble/eval) (require scribble/decode) (require racket/file) (require racket/list) (require (for-syntax racket)) (require (for-label racket)) (require (for-label racket/base)) (define e (make-base-eval)) (title "Welcome to mpost-wrapper.") "Many examples are listed as below. In order to run these examples, we need first require the snip module to show figures." (examples #:eval e (require (planet wcy/mpost-wrapper/snip))) (begin (begin (section "ex-1") (subsection "source code in " "ex-1" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C)\n (values (point 0 0)\n (point '1cm 0)\n (point 0 '1cm)))\n(define (main)\n (draw\n (call-with-values A-B-C\n op--)))\n") (subsection "the result of " "ex-1") (display (string-append "generating " "ex-1" "\n")) (newline) (examples #:eval e (require "examples/ex-1.rkt") (make-figure "ex-1" main)))) (begin (begin (section "ex-2") (subsection "source code in " "ex-2" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C)\n (values (point 0 0)\n (point '1cm 0)\n (point 0 '1cm)))\n(define (main)\n (draw\n (call-with-values A-B-C\n (lambda (A B C)\n (op-- A B C 'cycle)))))\n") (subsection "the result of " "ex-2") (display (string-append "generating " "ex-2" "\n")) (newline) (examples #:eval e (require "examples/ex-2.rkt") (make-figure "ex-2" main)))) (begin (begin (section "ex-3") (subsection "source code in " "ex-3" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C-D)\n (values (point 0 0)\n (point '1cm 0)\n (point '1cm '1cm)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C-D\n (lambda (A B C D)\n (draw (op-- A B C D 'cycle))\n (draw (op-- A C))\n (draw (op-- B D)))))\n") (subsection "the result of " "ex-3") (display (string-append "generating " "ex-3" "\n")) (newline) (examples #:eval e (require "examples/ex-3.rkt") (make-figure "ex-3" main)))) (begin (begin (section "ex-4") (subsection "source code in " "ex-4" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (draw (point 0 0)\n #:withpen (scale '4bp 'pencircle)))\n") (subsection "the result of " "ex-4") (display (string-append "generating " "ex-4" "\n")) (newline) (examples #:eval e (require "examples/ex-4.rkt") (make-figure "ex-4" main)))) (begin (begin (section "ex-5") (subsection "source code in " "ex-5" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C)\n (values (point 0 0)\n (point '1cm 0)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C\n (lambda (A B C)\n (draw (op-- A B C 'cycle))\n (for ((p (in-list (list A B C))))\n (draw p #:withpen (scale '4bp 'pencircle)))\n )))\n") (subsection "the result of " "ex-5") (display (string-append "generating " "ex-5" "\n")) (newline) (examples #:eval e (require "examples/ex-5.rkt") (make-figure "ex-5" main)))) (begin (begin (section "ex-6") (subsection "source code in " "ex-6" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C-D)\n (values (point 0 0)\n (point '1cm 0)\n (point '1cm '1cm)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C-D\n (lambda (A B C D)\n (draw (op-- A B C D 'cycle))\n (draw (op-- A C))\n (draw (op-- B D))\n (for ((p (in-list (list A B C D))))\n (draw p #:withpen (scale '4bp 'pencircle))))))\n") (subsection "the result of " "ex-6") (display (string-append "generating " "ex-6" "\n")) (newline) (examples #:eval e (require "examples/ex-6.rkt") (make-figure "ex-6" main)))) (begin (begin (section "ex-7") (subsection "source code in " "ex-7" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C)\n (values (point 0 0)\n (point '1cm 0)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C\n (lambda (A B C)\n (draw (op-- A B C 'cycle))\n (draw (op-- (mediation '.5 B C) A))\n (draw (op-- (mediation '.5 A C) B))\n (draw (op-- (mediation '.5 B A) C))\n )))\n") (subsection "the result of " "ex-7") (display (string-append "generating " "ex-7" "\n")) (newline) (examples #:eval e (require "examples/ex-7.rkt") (make-figure "ex-7" main)))) (begin (begin (section "ex-8") (subsection "source code in " "ex-8" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C)\n (values (point 0 0)\n (point '1cm 0)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C\n (lambda (A B C)\n (draw (op-- A B C 'cycle))\n (draw (op-- (mediation 0.5 B C) A))\n (draw (op-- (mediation 0.5 A C) B))\n (draw (op-- (mediation 0.5 B A) C))\n (draw (op* 1/3 (op+ A B C))\n #:withpen (scale '4bp 'pencircle))\n )))\n") (subsection "the result of " "ex-8") (display (string-append "generating " "ex-8" "\n")) (newline) (examples #:eval e (require "examples/ex-8.rkt") (make-figure "ex-8" main)))) (begin (begin (section "ex-9") (subsection "source code in " "ex-9" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C)\n (values (point 0 0)\n (point '1cm 0)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C\n (lambda (A B C)\n (draw (op-- A B C 'cycle))\n (draw (op-- A B) #:withpen (scale '4bp 'pencircle))\n )))\n") (subsection "the result of " "ex-9") (display (string-append "generating " "ex-9" "\n")) (newline) (examples #:eval e (require "examples/ex-9.rkt") (make-figure "ex-9" main)))) (begin (begin (section "ex-10") (subsection "source code in " "ex-10" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C)\n (values (point 0 0)\n (point '1cm 0)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C\n (lambda (A B C)\n (draw (op-- A B C 'cycle))\n (draw (op-- A B)\n #:withcolor (op+ 'green 'red))\n )))\n") (subsection "the result of " "ex-10") (display (string-append "generating " "ex-10" "\n")) (newline) (examples #:eval e (require "examples/ex-10.rkt") (make-figure "ex-10" main)))) (begin (begin (section "ex-11") (subsection "source code in " "ex-11" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C)\n (values (point 0 0)\n (point '1cm 0)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C\n (lambda (A B C)\n (draw (op-- A B))\n (draw (op-- B C) #:dashed 'evenly)\n (draw (op-- C A) #:dashed 'withdots)\n )))\n") (subsection "the result of " "ex-11") (display (string-append "generating " "ex-11" "\n")) (newline) (examples #:eval e (require "examples/ex-11.rkt") (make-figure "ex-11" main)))) (begin (begin (section "ex-12") (subsection "source code in " "ex-12" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C)\n (values (point 0 0)\n (point '1cm 0)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C\n (lambda (A B C)\n (for ((p (in-list (list (op-- A B)\n (op-- B C)\n (op-- C A)\n )))\n (color (in-list (list 0.8 0.6 0.4))))\n (draw p\n #:withpen (scale '2bp 'pencircle)\n #:withcolor (op* color 'white)))\n )))\n") (subsection "the result of " "ex-12") (display (string-append "generating " "ex-12" "\n")) (newline) (examples #:eval e (require "examples/ex-12.rkt") (make-figure "ex-12" main)))) (begin (begin (section "ex-13") (subsection "source code in " "ex-13" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C-D)\n (values (point 0 0)\n (point '1cm 0)\n (point '1cm '1cm)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C-D\n (lambda (A B C D)\n (draw (op-- A B C 'cycle))\n (draw (op-- (mediation '.5 B C) A) #:dashed 'evenly)\n (draw (op-- (mediation '.5 A C) B) #:dashed 'evenly)\n (draw (op-- (mediation '.5 B A) C) #:dashed 'evenly)\n (draw (op* 1/3\n (op+ A B C)) #:withpen (scale '4bp 'pencircle)\n #:withcolor 'red)\n )))\n") (subsection "the result of " "ex-13") (display (string-append "generating " "ex-13" "\n")) (newline) (examples #:eval e (require "examples/ex-13.rkt") (make-figure "ex-13" main)))) (begin (begin (section "ex-14") (subsection "source code in " "ex-14" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (draw (op-- (point 0 0)\n (point '3cm 0)) #:dashed (scale 2 'evenly)))\n") (subsection "the result of " "ex-14") (display (string-append "generating " "ex-14" "\n")) (newline) (examples #:eval e (require "examples/ex-14.rkt") (make-figure "ex-14" main)))) (begin (begin (section "ex-15") (subsection "source code in " "ex-15" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (draw (op-- (point 0 0)\n (point '3cm 0))\n #:dashed (dashpattern \"on 2bp off 3bp\")))\n") (subsection "the result of " "ex-15") (display (string-append "generating " "ex-15" "\n")) (newline) (examples #:eval e (require "examples/ex-15.rkt") (make-figure "ex-15" main)))) (begin (begin (section "ex-16") (subsection "source code in " "ex-16" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (draw (op-- (point 0 0)\n (point '3cm 0))\n #:dashed (dashpattern \"on 1bp off 2bp on 10bp off 2bp\")))\n") (subsection "the result of " "ex-16") (display (string-append "generating " "ex-16" "\n")) (newline) (examples #:eval e (require "examples/ex-16.rkt") (make-figure "ex-16" main)))) (begin (begin (section "ex-17") (subsection "source code in " "ex-17" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C)\n (values (point 0 0)\n (point '1cm 0)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C\n (lambda (A B C)\n (drawarrow (op-- C B A))\n (drawarrow (op-- A C) #:withpen (scale '2bp 'pencircle)))))\n") (subsection "the result of " "ex-17") (display (string-append "generating " "ex-17" "\n")) (newline) (examples #:eval e (require "examples/ex-17.rkt") (make-figure "ex-17" main)))) (begin (begin (section "ex-18") (subsection "source code in " "ex-18" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C)\n (values (point 0 0)\n (point '1cm 0)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C\n (lambda (A B C)\n (drawdblarrow (op-- C B A 'cycle))\n (drawdblarrow (op-- A C) #:withpen (scale '2bp 'pencircle)))))\n") (subsection "the result of " "ex-18") (display (string-append "generating " "ex-18" "\n")) (newline) (examples #:eval e (require "examples/ex-18.rkt") (make-figure "ex-18" main)))) (begin (begin (section "ex-19") (subsection "source code in " "ex-19" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (draw (op--\n (point '-1.5cm 0)\n (point '1.5cm 0))))\n") (subsection "the result of " "ex-19") (display (string-append "generating " "ex-19" "\n")) (newline) (examples #:eval e (require "examples/ex-19.rkt") (make-figure "ex-19" main)))) (begin (begin (section "ex-20") (subsection "source code in " "ex-20" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C)\n (values (point 0 0)\n (point '1cm 0)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C\n (lambda (A B C)\n (fill (op-- A B C 'cycle) #:withcolor (op* 0.8 'white)))))\n") (subsection "the result of " "ex-20") (display (string-append "generating " "ex-20" "\n")) (newline) (examples #:eval e (require "examples/ex-20.rkt") (make-figure "ex-20" main)))) (begin (begin (section "ex-21") (subsection "source code in " "ex-21" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C)\n (values (point 0 0)\n (point '1cm 0)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C\n (lambda (A B C)\n (fill (op-- A B C 'cycle) #:withcolor (op* 0.8 'white))\n (draw (op-- A B C 'cycle)))))\n") (subsection "the result of " "ex-21") (display (string-append "generating " "ex-21" "\n")) (newline) (examples #:eval e (require "examples/ex-21.rkt") (make-figure "ex-21" main)))) (begin (begin (section "ex-22") (subsection "source code in " "ex-22" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C)\n (values (point 0 0)\n (point '1cm 0)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C\n (lambda (A B C)\n (fill (op-- A B C 'cycle) #:withcolor (op* 0.8 'white))\n (draw (op-- A B C 'cycle) #:withpen (scale '2bp 'pencircle)))))\n") (subsection "the result of " "ex-22") (display (string-append "generating " "ex-22" "\n")) (newline) (examples #:eval e (require "examples/ex-22.rkt") (make-figure "ex-22" main)))) (begin (begin (section "ex-23") (subsection "source code in " "ex-23" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C)\n (values (point 0 0)\n (point '1cm 0)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C\n (lambda (A B C)\n (draw (op-- A B C 'cycle) #:withpen (scale '2bp 'pencircle))\n (fill (op-- A B C 'cycle) #:withcolor (op* 0.8 'white)))))\n") (subsection "the result of " "ex-23") (display (string-append "generating " "ex-23" "\n")) (newline) (examples #:eval e (require "examples/ex-23.rkt") (make-figure "ex-23" main)))) (begin (begin (section "ex-24") (subsection "source code in " "ex-24" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C-D)\n (values (point 0 0)\n (point '1cm 0)\n (point '1cm '1cm)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C-D\n (lambda (A B C D)\n (fill (op-- A C B D 'cycle) #:withcolor (op* 0.8 'white)))))\n") (subsection "the result of " "ex-24") (display (string-append "generating " "ex-24" "\n")) (newline) (examples #:eval e (require "examples/ex-24.rkt") (make-figure "ex-24" main)))) (begin (begin (section "ex-25") (subsection "source code in " "ex-25" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C-D)\n (values (point 0 0)\n (point '1cm 0)\n (point '1cm '1cm)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C-D\n (lambda (A B C D)\n (let ((p (op-- A C B D 'cycle)))\n (fill p #:withcolor (op* 0.8 'white))\n (draw p)))))\n") (subsection "the result of " "ex-25") (display (string-append "generating " "ex-25" "\n")) (newline) (examples #:eval e (require "examples/ex-25.rkt") (make-figure "ex-25" main)))) (begin (begin (section "ex-26") (subsection "source code in " "ex-26" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let ((A (point '-1.5cm '-1.5cm))\n (B (point '1.5cm '-1.5cm))\n (C (point '1.5cm '1.5cm))\n (D (point '-1.5cm '1.5cm)))\n (fill (op-- A C B D 'cycle) #:withcolor (op* 0.8 'white))\n (draw (op-- (point '-1.5cm 0) (point '1.5cm '0)))\n (draw (op-- (point 0 '-1.5cm) (point 0 '1.5cm)))\n (drawarrow (op-- (point 0 0) (point '1cm 0))\n #:withpen (scale '2bp 'pencircle))\n (drawarrow (op-- (point 0 0) (point 0 '1cm))\n #:withpen (scale '2bp 'pencircle))))\n") (subsection "the result of " "ex-26") (display (string-append "generating " "ex-26" "\n")) (newline) (examples #:eval e (require "examples/ex-26.rkt") (make-figure "ex-26" main)))) (begin (begin (section "ex-27") (subsection "source code in " "ex-27" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(require (planet wcy/mpost-wrapper/label))\n(provide main)\n\n\n(define (main)\n (let ((A (point 0 0)))\n (draw A #:withpen (scale '4bp 'pencircle))\n (label-top (btex \"Au dessus\") A)\n (label-bot (btex \"En dessous\") A)\n (label-rt (btex \"^^c0 droite\") A)\n (label-lft (btex \"^^c0 gauche\") A)))\n") (subsection "the result of " "ex-27") (display (string-append "generating " "ex-27" "\n")) (newline) (examples #:eval e (require "examples/ex-27.rkt") (make-figure "ex-27" main)))) (begin (begin (section "ex-28") (subsection "source code in " "ex-28" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(require (planet wcy/mpost-wrapper/label))\n(provide main)\n\n(define (main)\n (let ((A (point 0 0)))\n (draw A #:withpen (scale '4bp 'pencircle))\n (label-ulft (btex \"En haut ^^e0 gauche\") A)\n (label-urt (btex \"En haut ^^e0 droite\") A)\n (label-llft (btex \"En bas ^^e0 gauche\") A)\n (label-lrt (btex \"En bas ^^e0 droite\") A)))\n") (subsection "the result of " "ex-28") (display (string-append "generating " "ex-28" "\n")) (newline) (examples #:eval e (require "examples/ex-28.rkt") (make-figure "ex-28" main)))) (begin (begin (section "ex-29") (subsection "source code in " "ex-29" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(require (planet wcy/mpost-wrapper/label))\n(provide main)\n\n(define (main)\n (dot-label-urt (btex \"$A$\") (point 0 0)))\n") (subsection "the result of " "ex-29") (display (string-append "generating " "ex-29" "\n")) (newline) (examples #:eval e (require "examples/ex-29.rkt") (make-figure "ex-29" main)))) (begin (begin (section "ex-30") (subsection "source code in " "ex-30" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(require (planet wcy/mpost-wrapper/label))\n(provide main)\n(define (A-B-C)\n (values (point 0 0)\n (point '1cm 0)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C\n (lambda (A B C)\n (draw (op-- A B C 'cycle))\n (dot-label-llft (btex \"$A$\") A)\n (dot-label-lrt (btex \"$B$\") B)\n (dot-label-top (btex \"$C$\") C))))\n") (subsection "the result of " "ex-30") (display (string-append "generating " "ex-30" "\n")) (newline) (examples #:eval e (require "examples/ex-30.rkt") (make-figure "ex-30" main)))) (begin (begin (section "ex-31") (subsection "source code in " "ex-31" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(require (planet wcy/mpost-wrapper/label))\n(provide main)\n(define (A-B-C)\n (values (point 0 0)\n (point '1cm 0)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C\n (lambda (A B C)\n (draw (op-- A B C 'cycle))\n (label-bot (btex \"$1$\") (mediation 0.5 A B))\n (label-lft (btex \"$1$\") (mediation 1/2 A C))\n (label-urt (btex \"$\\\\sqrt 2$\") (mediation 1/2 B C)))))\n") (subsection "the result of " "ex-31") (display (string-append "generating " "ex-31" "\n")) (newline) (examples #:eval e (require "examples/ex-31.rkt") (make-figure "ex-31" main)))) (begin (begin (section "ex-32") (subsection "source code in " "ex-32" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(require (planet wcy/mpost-wrapper/label))\n(provide main)\n\n(define (ex-32-points y xs)\n (map(lambda (x) (point x y)) xs))\n(define (main)\n (let* ((u '1cm)\n (xs (list (op* -1 u) 0 u))\n (u-points (ex-32-points u xs))\n (l-points (ex-32-points 0 xs)))\n (for* ((a (in-list l-points))\n (b (in-list u-points)))\n (draw (op-- a b)))\n (for ((ut (in-list (list \"$a$\" \"$b$\" \"$c$\")))\n (a (in-list u-points))\n (lt (in-list (list \"$a'$\" \"$b'$\" \"$c'$\")))\n (b (in-list l-points)))\n (dot-label-top (btex ut) a)\n (dot-label-bot (btex lt) b))))\n") (subsection "the result of " "ex-32") (display (string-append "generating " "ex-32" "\n")) (newline) (examples #:eval e (require "examples/ex-32.rkt") (make-figure "ex-32" main)))) (begin (begin (section "ex-33") (subsection "source code in " "ex-33" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (draw (fullcircle)))\n") (subsection "the result of " "ex-33") (display (string-append "generating " "ex-33" "\n")) (newline) (examples #:eval e (require "examples/ex-33.rkt") (make-figure "ex-33" main)))) (begin (begin (section "ex-34") (subsection "source code in " "ex-34" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (draw (point 0 0 ) #:withpen (scale '4bp 'pencircle)))\n") (subsection "the result of " "ex-34") (display (string-append "generating " "ex-34" "\n")) (newline) (examples #:eval e (require "examples/ex-34.rkt") (make-figure "ex-34" main)))) (begin (begin (section "ex-35") (subsection "source code in " "ex-35" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (draw (point 0 0 ) #:withpen (scale '4bp 'pencircle)))\n") (subsection "the result of " "ex-35") (display (string-append "generating " "ex-35" "\n")) (newline) (examples #:eval e (require "examples/ex-35.rkt") (make-figure "ex-35" main)))) (begin (begin (section "ex-36") (subsection "source code in " "ex-36" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C)\n (values (point 0 0)\n (point '1cm 0)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C\n (lambda (A B C)\n (draw (op-- A B C 'cycle))\n (for ((a-point (in-list (list A B C))))\n (fill (fullcircle '4bp a-point) #:withcolor 'white))\n (for ((a-point (in-list (list A B C))))\n (draw (fullcircle '4bp a-point))))))\n") (subsection "the result of " "ex-36") (display (string-append "generating " "ex-36" "\n")) (newline) (examples #:eval e (require "examples/ex-36.rkt") (make-figure "ex-36" main)))) (begin (begin (section "ex-37") (subsection "source code in " "ex-37" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C-D)\n (values (point 0 0)\n (point '1cm 0)\n (point '1cm '1cm)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C-D\n (lambda (A B C D)\n (draw (op.. A D B C))\n (for ((A (in-list (list A B C D))))\n (draw A #:withpen (scale '4bp 'pencircle))))))\n") (subsection "the result of " "ex-37") (display (string-append "generating " "ex-37" "\n")) (newline) (examples #:eval e (require "examples/ex-37.rkt") (make-figure "ex-37" main)))) (begin (begin (section "ex-38") (subsection "source code in " "ex-38" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C-D)\n (values (point 0 0)\n (point '1cm 0)\n (point '1cm '1cm)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C-D\n (lambda (A B C D)\n (draw (path A '-- D '.. B '.. C))\n )))\n") (subsection "the result of " "ex-38") (display (string-append "generating " "ex-38" "\n")) (newline) (examples #:eval e (require "examples/ex-38.rkt") (make-figure "ex-38" main)))) (begin (begin (section "ex-39") (subsection "source code in " "ex-39" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C-D)\n (values (point 0 0)\n (point '1cm 0)\n (point '1cm '1cm)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C-D\n (lambda (A B C D)\n (draw (path A '--- D '.. B '.. C))\n )))\n") (subsection "the result of " "ex-39") (display (string-append "generating " "ex-39" "\n")) (newline) (examples #:eval e (require "examples/ex-39.rkt") (make-figure "ex-39" main)))) (begin (begin (section "ex-40") (subsection "source code in " "ex-40" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C-D)\n (values (point 0 0)\n (point '1cm 0)\n (point '1cm '1cm)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C-D\n (lambda (A B C D)\n (draw (path A '.. D '.. B '.. C))\n )))\n") (subsection "the result of " "ex-40") (display (string-append "generating " "ex-40" "\n")) (newline) (examples #:eval e (require "examples/ex-40.rkt") (make-figure "ex-40" main)))) (begin (begin (section "ex-41") (subsection "source code in " "ex-41" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C-D)\n (values (point 0 0)\n (point '1cm 0)\n (point '1cm '1cm)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C-D\n (lambda (A B C D)\n (draw (op.. A B C D 'cycle)\n ))))\n") (subsection "the result of " "ex-41") (display (string-append "generating " "ex-41" "\n")) (newline) (examples #:eval e (require "examples/ex-41.rkt") (make-figure "ex-41" main)))) (begin (begin (section "ex-42") (subsection "source code in " "ex-42" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C-D)\n (values (point 0 0)\n (point '1cm 0)\n (point '1cm '1cm)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C-D\n (lambda (A B C D)\n (draw (op.. A C 'cycle)\n ))))\n") (subsection "the result of " "ex-42") (display (string-append "generating " "ex-42" "\n")) (newline) (examples #:eval e (require "examples/ex-42.rkt") (make-figure "ex-42" main)))) (begin (begin (section "ex-43") (subsection "source code in " "ex-43" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (draw (path (point 0 0) (dir-spec (point 0 1)) \"..\"\n (point '2cm 0) (dir-spec (point 1 0)))))\n") (subsection "the result of " "ex-43") (display (string-append "generating " "ex-43" "\n")) (newline) (examples #:eval e (require "examples/ex-43.rkt") (make-figure "ex-43" main)))) (begin (begin (section "ex-44") (subsection "source code in " "ex-44" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (draw (path (point 0 0) (dir-spec (dir 90)) \"..\"\n (point '2cm 0) (dir-spec (dir 0)))))\n") (subsection "the result of " "ex-44") (display (string-append "generating " "ex-44" "\n")) (newline) (examples #:eval e (require "examples/ex-44.rkt") (make-figure "ex-44" main)))) (begin (begin (section "ex-45") (subsection "source code in " "ex-45" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (draw (path (point 0 0) (dir-spec 'up) \"..\"\n (point '2cm 0) (dir-spec 'right))))\n") (subsection "the result of " "ex-45") (display (string-append "generating " "ex-45" "\n")) (newline) (examples #:eval e (require "examples/ex-45.rkt") (make-figure "ex-45" main)))) (begin (begin (section "ex-46") (subsection "source code in " "ex-46" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (draw (path (point 0 0) (dir-spec 'up) \"..\"\n (point '2cm 0) (dir-spec 'up))))\n") (subsection "the result of " "ex-46") (display (string-append "generating " "ex-46" "\n")) (newline) (examples #:eval e (require "examples/ex-46.rkt") (make-figure "ex-46" main)))) (begin (begin (section "ex-47") (subsection "source code in " "ex-47" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (draw (path (point 0 0) (dir-spec 'up) \"..\"\n (point '2cm 0) (dir-spec 'up) \"..\"\n 'cycle)))\n") (subsection "the result of " "ex-47") (display (string-append "generating " "ex-47" "\n")) (newline) (examples #:eval e (require "examples/ex-47.rkt") (make-figure "ex-47" main)))) (begin (begin (section "ex-48") (subsection "source code in " "ex-48" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (arc O A B rou)\n (let ((alpha (op-angle (op- A O)))\n (beta (op-angle (op- B O))))\n (path (op+ O (polar rou alpha)) (dir-spec (dir (op+ alpha 90))) \"..\"\n (op+ O (polar rou beta )) (dir-spec (dir (op+ beta 90))))))\n(define (main)\n (let* ((O (point 0 0))\n (alpha 30)\n (A (polar '2cm 0))\n (B (polar '2cm alpha)))\n (draw (path O \"..\" A))\n (draw (path O \"..\" B))\n (draw (arc O A B '1cm))))\n") (subsection "the result of " "ex-48") (display (string-append "generating " "ex-48" "\n")) (newline) (examples #:eval e (require "examples/ex-48.rkt") (make-figure "ex-48" main)))) (begin (begin (section "ex-49") (subsection "source code in " "ex-49" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (arc O A B rou)\n (let ((alpha (op-angle (op- A O)))\n (beta (op-angle (op- B O))))\n (path (op+ O (polar rou alpha)) (dir-spec (dir (op+ alpha 90))) \"..\"\n (op+ O (polar rou beta )) (dir-spec (dir (op+ beta 90))))))\n(define (main)\n (let* ((O (point 0 0))\n (alpha 30)\n (A (polar '2cm 0))\n (B (polar '2cm alpha)))\n (draw (path O \"..\" A))\n (draw (path O \"..\" B))\n (draw (arc O A B '1cm))\n (draw (arc O A B '1.1cm))))\n") (subsection "the result of " "ex-49") (display (string-append "generating " "ex-49" "\n")) (newline) (examples #:eval e (require "examples/ex-49.rkt") (make-figure "ex-49" main)))) (begin (begin (section "ex-50") (subsection "source code in " "ex-50" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (arc O A B rou)\n (let ((alpha (op-angle (op- A O)))\n (beta (op-angle (op- B O))))\n (path (op+ O (polar rou alpha)) (dir-spec (dir (op+ alpha 90))) \"..\"\n (op+ O (polar rou beta )) (dir-spec (dir (op+ beta 90))))))\n(define (draw-angle A B C n)\n (let ((rou '4.5mm))\n (if (> n 0)\n (begin\n (draw (arc A B C (op+ rou (op* n '0.5mm))))\n (draw-angle A B C (- n 1)))\n (void))))\n(define (main)\n (let ((A (point 0 0))\n (B (point '3cm 0))\n (C (point '1cm '2cm)))\n (draw (op-- A B C 'cycle))\n (draw-angle A B C 1)\n (draw-angle B C A 2)\n (draw-angle C A B 3)))\n") (subsection "the result of " "ex-50") (display (string-append "generating " "ex-50" "\n")) (newline) (examples #:eval e (require "examples/ex-50.rkt") (make-figure "ex-50" main)))) (begin (begin (section "ex-51") (subsection "source code in " "ex-51" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((u '1cm)\n (p (path (point u 0) (dir-spec 'up) \"..\"\n (point (op* -1 u) 0) (dir-spec 'down) \"--\"\n 'cycle)))\n (fill p #:withcolor (op* 0.8 'white))\n (draw p #:withpen (scale '1bp 'pencircle))\n ))\n") (subsection "the result of " "ex-51") (display (string-append "generating " "ex-51" "\n")) (newline) (examples #:eval e (require "examples/ex-51.rkt") (make-figure "ex-51" main)))) (begin (begin (section "ex-52") (subsection "source code in " "ex-52" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((u '1cm)\n (p (path (point u 0) (dir-spec 'up) \"..\"\n (point (op* -1 u) 0) (dir-spec 'down) \"--\"\n (point (op* -0.2 u) 0) (dir-spec 'up) \"..\"\n (point (op* 0.2 u) 0) (dir-spec 'down) \"--\"\n 'cycle)))\n (fill p #:withcolor (op* 0.8 'white))\n (draw p #:withpen (scale '1bp 'pencircle))\n ))\n") (subsection "the result of " "ex-52") (display (string-append "generating " "ex-52" "\n")) (newline) (examples #:eval e (require "examples/ex-52.rkt") (make-figure "ex-52" main)))) (begin (begin (section "ex-53") (subsection "source code in " "ex-53" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((u '1cm)\n (A (point (op* 0.2 u) (op* 0.05 u)))\n (AA (point (op* 0.2 u) (op* -0.05 u)))\n (B (point (op* 1.0 u) (op* 0.05 u)))\n (BB (point (op* 1.0 u) (op* -0.05 u)))\n (C (point (op* -0.2 u) (op* 0 0)))\n (D (point (op* -1.0 u) (op* 0 0)))\n (p (path B (dir-spec 'up) \"..\"\n D (dir-spec 'down) \"..\"\n BB (dir-spec 'up) \"--\"\n AA (dir-spec 'down) \"..\"\n C (dir-spec 'up) \"..\"\n A (dir-spec 'down) \"--\"\n 'cycle)))\n (fill p #:withcolor (op* 0.8 'white))\n (draw p #:withpen (scale '1bp 'pencircle))\n ))\n") (subsection "the result of " "ex-53") (display (string-append "generating " "ex-53" "\n")) (newline) (examples #:eval e (require "examples/ex-53.rkt") (make-figure "ex-53" main)))) (begin (begin (section "ex-54") (subsection "source code in " "ex-54" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((u '1cm)\n (A (point 0 0))\n (B (polar u 60))\n (C (polar u -60))\n (D (point (op* 2 u) 0)))\n (for ((x (in-list (list A B C D))))\n (draw x #:withpen (scale '4bp 'pencircle)))\n (draw (op-- A D B D C))\n (for ((x (in-list (list (path A (dir-spec 'up) \"..\" B)\n (path A (dir-spec 'down) \"..\" C)\n (path A (dir-spec (dir 30)) \"..\" B)\n (path A (dir-spec (dir -30)) \"..\" C)))))\n (draw x)\n )))\n") (subsection "the result of " "ex-54") (display (string-append "generating " "ex-54" "\n")) (newline) (examples #:eval e (require "examples/ex-54.rkt") (make-figure "ex-54" main)))) (begin (begin (section "ex-55") (subsection "source code in " "ex-55" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (draw (op.. (point 0 0) (point '1cm '1cm) (point '2cm 0))))\n") (subsection "the result of " "ex-55") (display (string-append "generating " "ex-55" "\n")) (newline) (examples #:eval e (require "examples/ex-55.rkt") (make-figure "ex-55" main)))) (begin (begin (section "ex-56") (subsection "source code in " "ex-56" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (draw (path (point 0 0) '..\n \"tension 2\" '..\n (point '1cm '1cm) '..\n (point '2cm 0))))\n") (subsection "the result of " "ex-56") (display (string-append "generating " "ex-56" "\n")) (newline) (examples #:eval e (require "examples/ex-56.rkt") (make-figure "ex-56" main)))) (begin (begin (section "ex-57") (subsection "source code in " "ex-57" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let ((u '1cm))\n (draw (path (polar u 90) (dir-spec (dir 0)) '..\n (polar u -150) (dir-spec (dir 120)) '..\n (polar u -30 ) (dir-spec (dir -120)) '..\n 'cycle))))\n") (subsection "the result of " "ex-57") (display (string-append "generating " "ex-57" "\n")) (newline) (examples #:eval e (require "examples/ex-57.rkt") (make-figure "ex-57" main)))) (begin (begin (section "ex-58") (subsection "source code in " "ex-58" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let ((u '1cm)\n (tension \" tension 2 \"))\n (draw (path (polar u 90) (dir-spec (dir 0)) '.. tension '..\n (polar u -150 ) (dir-spec (dir 120)) '.. tension '..\n (polar u -30 ) (dir-spec (dir -120)) '.. tension '..\n 'cycle))))\n") (subsection "the result of " "ex-58") (display (string-append "generating " "ex-58" "\n")) (newline) (examples #:eval e (require "examples/ex-58.rkt") (make-figure "ex-58" main)))) (begin (begin (section "ex-59") (subsection "source code in " "ex-59" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let ((u '1cm)\n (tension \" tension 4 \"))\n (draw (path (polar u 90) (dir-spec (dir 0)) '.. tension '..\n (polar u -150 ) (dir-spec (dir 120)) '.. tension '..\n (polar u -30 ) (dir-spec (dir -120)) '.. tension '..\n 'cycle))))\n") (subsection "the result of " "ex-59") (display (string-append "generating " "ex-59" "\n")) (newline) (examples #:eval e (require "examples/ex-59.rkt") (make-figure "ex-59" main)))) (begin (begin (section "ex-60") (subsection "source code in " "ex-60" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((u '0.5cm)\n (A (point 0 0))\n (B (point (op* -1 u) (op* 2 u)))\n (C (point (op* 4 u) (op* 3 u)))\n (D (point (op* 3 u) 0)))\n (draw (path\n A \"..\" \" controls \" B \" and \" C \"..\" D)\n #:withpen (scale '2pt 'pencircle))\n (draw (op-- B C) #:dashed 'evenly)\n (drawarrow (op-- A B))\n (drawarrow (op-- D C))))\n") (subsection "the result of " "ex-60") (display (string-append "generating " "ex-60" "\n")) (newline) (examples #:eval e (require "examples/ex-60.rkt") (make-figure "ex-60" main)))) (begin (begin (section "ex-61") (subsection "source code in " "ex-61" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n\n(define (main)\n (define (f z1 zn)\n (if (null? zn)\n z1\n (let ((x (f2 z1 zn)))\n (f (car x) (cdr x)))))\n (define (f2 z1 zn)\n (if (null? (cdr zn))\n (list (mediation 1/2 z1 (car zn)))\n (cons (mediation 1/2 z1 (car zn))\n (f2 (car zn) (cdr zn)))))\n (let* ((u '1cm)\n (A (point 0 0))\n (B (point (op* -1 u) (op* 2 u)))\n (C (point (op* 3 u) (op* 3 u)))\n (D (point (op* 2 u) 0)))\n (for ((A (in-list (list A B C D))))\n (draw A #:withpen (scale '4bp 'pencircle)))\n (draw (path A \"..\" \" controls \" B \" and \" C \"..\" D))\n (draw (f A (list B C D))\n #:withpen (scale '4bp 'pencircle))))\n\n") (subsection "the result of " "ex-61") (display (string-append "generating " "ex-61" "\n")) (newline) (examples #:eval e (require "examples/ex-61.rkt") (make-figure "ex-61" main)))) (begin (begin (section "ex-62") (subsection "source code in " "ex-62" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (define (bezier n A B C D)\n (let* ((a1 A)\n (a2 B)\n (a3 C)\n (a4 D)\n (a12 (mediation 1/2 a1 a2))\n (a23 (mediation 1/2 a2 a3))\n (a34 (mediation 1/2 a3 a4))\n (a123 (mediation 1/2 a12 a23))\n (a234 (mediation 1/2 a23 a34))\n (a1234(mediation 1/2 a123 a234)))\n (if (> n 0)\n (begin\n (bezier (- n 1) a1 a12 a123 a1234)\n (bezier (- n 1) a1234 a234 a34 a4))\n (draw a1234 #:withpen (scale '2bp 'pencircle)))))\n (let* ((u '1cm)\n (A (point 0 0))\n (B (point (op* -1 u) (op* 2 u)))\n (C (point (op* 3 u) (op* 3 u)))\n (D (point (op* 2 u) 0)))\n (for ((A (in-list (list A B C D))))\n (draw A #:withpen (scale '4bp 'pencircle)))\n ;; (draw (path A \"..\" \" controls \" B \" and \" C \"..\" D))\n (bezier 5 A B C D)))\n") (subsection "the result of " "ex-62") (display (string-append "generating " "ex-62" "\n")) (newline) (examples #:eval e (require "examples/ex-62.rkt") (make-figure "ex-62" main)))) (begin (begin (section "ex-63") (subsection "source code in " "ex-63" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (draw (path (point 0 0) (dir-spec 'up) '..\n (point '1cm '1mm) \"..\"\n (point '2cm 0) (dir-spec 'down))))\n") (subsection "the result of " "ex-63") (display (string-append "generating " "ex-63" "\n")) (newline) (examples #:eval e (require "examples/ex-63.rkt") (make-figure "ex-63" main)))) (begin (begin (section "ex-64") (subsection "source code in " "ex-64" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (draw (path (point 0 0) (dir-spec 'up) '...\n (point '1cm '1mm) \"...\"\n (point '2cm 0) (dir-spec 'down))))\n") (subsection "the result of " "ex-64") (display (string-append "generating " "ex-64" "\n")) (newline) (examples #:eval e (require "examples/ex-64.rkt") (make-figure "ex-64" main)))) (begin (begin (section "ex-65") (subsection "source code in " "ex-65" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C-D)\n (values (point 0 0)\n (point '1cm 0)\n (point '1cm '1cm)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C-D\n (lambda (A B C D)\n (draw (path A \" {curl 0} \" \"..\"\n D \"..\"\n B \"..\"\n C )))))\n") (subsection "the result of " "ex-65") (display (string-append "generating " "ex-65" "\n")) (newline) (examples #:eval e (require "examples/ex-65.rkt") (make-figure "ex-65" main)))) (begin (begin (section "ex-66") (subsection "source code in " "ex-66" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C-D)\n (values (point 0 0)\n (point '1cm 0)\n (point '1cm '1cm)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C-D\n (lambda (A B C D)\n (draw (path A \" {curl 1} \" \"..\"\n D \"..\"\n B \"..\"\n C )))))\n") (subsection "the result of " "ex-66") (display (string-append "generating " "ex-66" "\n")) (newline) (examples #:eval e (require "examples/ex-66.rkt") (make-figure "ex-66" main)))) (begin (begin (section "ex-67") (subsection "source code in " "ex-67" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (A-B-C-D)\n (values (point 0 0)\n (point '1cm 0)\n (point '1cm '1cm)\n (point 0 '1cm)))\n(define (main)\n (call-with-values A-B-C-D\n (lambda (A B C D)\n (draw (path A \" {curl 2} \" \"..\"\n D \"..\"\n B \"..\"\n C )))))\n") (subsection "the result of " "ex-67") (display (string-append "generating " "ex-67" "\n")) (newline) (examples #:eval e (require "examples/ex-67.rkt") (make-figure "ex-67" main)))) (begin (begin (section "ex-68") (subsection "source code in " "ex-68" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let ((A (unknown-point))\n (B (unknown-point))\n (C (unknown-point))\n (D (unknown-point)))\n (eqn= (xpart A) (ypart A) (ypart B) (xpart C) 0)\n (eqn= (xpart B) (ypart C) (xpart D) (ypart D) '2cm)\n (draw (op-- A B C D 'cycle)\n #:withpen (scale '2bp 'pencircle))))\n") (subsection "the result of " "ex-68") (display (string-append "generating " "ex-68" "\n")) (newline) (examples #:eval e (require "examples/ex-68.rkt") (make-figure "ex-68" main)))) (begin (begin (section "ex-69") (subsection "source code in " "ex-69" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((A (point 0 0))\n (B (point '2cm '3cm))\n (C (point '1cm 0))\n (D (point '-1cm '2cm))\n (M (unknown-point))\n (lambda1 (unknown-numeric))\n (mu (unknown-numeric)))\n (eqn= M (mediation lambda1 A B)\n (mediation mu C D))\n (draw (op-- A B))\n (draw (op-- C D))\n (draw M #:withpen (scale '4bp 'pencircle))))\n") (subsection "the result of " "ex-69") (display (string-append "generating " "ex-69" "\n")) (newline) (examples #:eval e (require "examples/ex-69.rkt") (make-figure "ex-69" main)))) (begin (begin (section "ex-70") (subsection "source code in " "ex-70" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((A (point 0 0))\n (B (point '2cm '3cm))\n (C (point '1cm 0))\n (D (point '-1cm '2cm))\n (M (unknown-point)))\n (eqn= M (mediation (whatever) A B)\n (mediation (whatever) C D))\n (draw (op-- A B))\n (draw (op-- C D))\n (draw M #:withpen (scale '4bp 'pencircle))))\n") (subsection "the result of " "ex-70") (display (string-append "generating " "ex-70" "\n")) (newline) (examples #:eval e (require "examples/ex-70.rkt") (make-figure "ex-70" main)))) (begin (begin (section "ex-71") (subsection "source code in " "ex-71" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((A (point 0 0))\n (B (point '3cm 0))\n (C (point '1cm '2cm))\n (AA (mediation 0.5 B C))\n (BB (mediation 0.5 A C))\n (CC (mediation 0.5 A B))\n (G (unknown-point)))\n (eqn= G\n (mediation (whatever) A AA)\n (mediation (whatever) B BB))\n (draw (op-- A B C 'cycle))\n (for ((a (list A B C))\n (b (list AA BB CC)))\n (draw (op-- a b) #:dashed 'withdots))\n (draw G #:withpen (scale '4bp 'pencircle))))\n") (subsection "the result of " "ex-71") (display (string-append "generating " "ex-71" "\n")) (newline) (examples #:eval e (require "examples/ex-71.rkt") (make-figure "ex-71" main)))) (begin (begin (section "ex-72") (subsection "source code in " "ex-72" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let ((p (fullcircle '5mm))\n (x (point '1mm '2mm)))\n (for ((n (in-range 5)))\n (draw (shift (op* n x) p )))))\n") (subsection "the result of " "ex-72") (display (string-append "generating " "ex-72" "\n")) (newline) (examples #:eval e (require "examples/ex-72.rkt") (make-figure "ex-72" main)))) (begin (begin (section "ex-73") (subsection "source code in " "ex-73" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let ((p (path (point '5mm '-5mm) (dir-spec 'right) '..\n (point '2cm 0))))\n (for ((n (in-range 10)))\n (draw (rotate (* 10 n) p)))))\n") (subsection "the result of " "ex-73") (display (string-append "generating " "ex-73" "\n")) (newline) (examples #:eval e (require "examples/ex-73.rkt") (make-figure "ex-73" main)))) (begin (begin (section "ex-74") (subsection "source code in " "ex-74" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let ((p (fullcircle '5mm))\n (x (point '1mm '2mm)))\n (for ((n (in-range 1 5)))\n (draw (xscale n p)))))\n") (subsection "the result of " "ex-74") (display (string-append "generating " "ex-74" "\n")) (newline) (examples #:eval e (require "examples/ex-74.rkt") (make-figure "ex-74" main)))) (begin (begin (section "ex-75") (subsection "source code in " "ex-75" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((A (point '1cm 0))\n (B (rotate 72 A))\n (C (rotate 72 B))\n (D (rotate 72 C))\n (E (rotate 72 D)))\n (draw (op-- A B C D E 'cycle))))\n") (subsection "the result of " "ex-75") (display (string-append "generating " "ex-75" "\n")) (newline) (examples #:eval e (require "examples/ex-75.rkt") (make-figure "ex-75" main)))) (begin (begin (section "ex-76") (subsection "source code in " "ex-76" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((A (point '1cm 0))\n (B (rotate 72 A))\n (C (rotate 72 B))\n (D (rotate 72 C))\n (E (rotate 72 D)))\n (draw (op-- A C E B D 'cycle))))\n") (subsection "the result of " "ex-76") (display (string-append "generating " "ex-76" "\n")) (newline) (examples #:eval e (require "examples/ex-76.rkt") (make-figure "ex-76" main)))) (begin (begin (section "ex-77") (subsection "source code in " "ex-77" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((A (point '1cm 0))\n (B (rotate 72 A))\n (C (rotate 72 B))\n (D (rotate 72 C))\n (E (rotate 72 D))\n (AA (unknown-point))\n (BB (unknown-point))\n (CC (unknown-point))\n (DD (unknown-point))\n (EE (unknown-point)))\n (eqn= AA (mediation (whatever) A C))\n (eqn= AA (mediation (whatever) B D))\n (eqn= BB (mediation (whatever) B D))\n (eqn= BB (mediation (whatever) C E))\n (eqn= CC (mediation (whatever) C E))\n (eqn= CC (mediation (whatever) D A))\n (eqn= DD (mediation (whatever) D A))\n (eqn= DD (mediation (whatever) E B))\n (eqn= EE (mediation (whatever) E B))\n (eqn= EE (mediation (whatever) A C))\n (fill (op-- A C E B D 'cycle) #:withcolor (op* 0.8 'white))\n (fill (op-- AA BB CC DD EE 'cycle) #:withcolor 'white)\n (draw (op-- A C E B D 'cycle))))\n") (subsection "the result of " "ex-77") (display (string-append "generating " "ex-77" "\n")) (newline) (examples #:eval e (require "examples/ex-77.rkt") (make-figure "ex-77" main)))) (begin (begin (section "ex-78") (subsection "source code in " "ex-78" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let ((p (path (op--\n (point 0 0)\n (point '1cm 0)))))\n (drawarrow p #:withpen (scale '2bp 'pencircle))\n (drawarrow (zscale (point 1 2) p))))\n") (subsection "the result of " "ex-78") (display (string-append "generating " "ex-78" "\n")) (newline) (examples #:eval e (require "examples/ex-78.rkt") (make-figure "ex-78" main)))) (begin (begin (section "ex-79") (subsection "source code in " "ex-79" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((u '1cm)\n (p (path (op-- (point 0 0)\n (point u 0))))\n (A (point u (op* -1 u)))\n (alpha 90))\n (drawarrow p #:withpen (scale '1bp 'pencircle))\n (drawarrow ((rotate-around A alpha) p))\n (drawarrow\n (shift A (rotate alpha (shift (op* -1 A) p)))\n #:withpen (scale '1bp 'pencircle) #:dashed 'withdots)))\n") (subsection "the result of " "ex-79") (display (string-append "generating " "ex-79" "\n")) (newline) (examples #:eval e (require "examples/ex-79.rkt") (make-figure "ex-79" main)))) (begin (begin (section "ex-80") (subsection "source code in " "ex-80" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(require (planet wcy/mpost-wrapper/label))\n(provide main)\n\n(define (main)\n (let* ((p (path\n (point 0 0) '--\n (point '1cm 0)))\n (A (point '1cm '-1cm))\n (alpha 90))\n (drawarrow p #:withpen (scale '1bp 'pencircle))\n (draw A #:withpen (scale '4bp 'pencircle))\n (label-ulft (btex \"$A$\") A)\n (draw (point 0 0) #:withpen (scale '4bp 'pencircle))\n (label-bot (btex \"$O$\") (point 0 0))\n (let loop ((i 0))\n (if (< i 10)\n (begin\n (drawarrow (shift (op* -1 (op/ (op* i A) 10)) p) #:withcolor 'red)\n (drawarrow (rotate (op/ (op* i alpha) 10) (shift (op* -1 A) p)) #:withcolor 'green)\n (drawarrow (shift (op/ (op* i A) 10) (rotate alpha (shift (op* -1 A) p)))\n #:withcolor 'blue)\n (loop (+ 1 i)))\n (void)))))\n") (subsection "the result of " "ex-80") (display (string-append "generating " "ex-80" "\n")) (newline) (examples #:eval e (require "examples/ex-80.rkt") (make-figure "ex-80" main)))) (begin (begin (section "ex-81") (subsection "source code in " "ex-81" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (define (f AA A B C)\n (eqn= (op- AA A)\n (rotate 90 (op* (unknown-numeric)\n (op- B C))))\n (eqn= AA (mediation (whatever) B C)))\n (let* ((A (point 0 0))\n (B (point '3cm 0))\n (C (point '1cm '2cm))\n (AA (unknown-point))\n (BB (unknown-point))\n (CC (unknown-point))\n (H (unknown-point)))\n (f AA A B C)\n (f BB B A C)\n (f CC C B A)\n (eqn= H (mediation (whatever) A AA))\n (eqn= H (mediation (whatever) B BB)) ;\n (for ((x (in-list (list\n (op-- A B C 'cycle)\n (op-- A AA)\n (op-- B BB)\n (op-- C CC)))))\n (draw x))\n (draw H #:withpen (scale '4bp 'pencircle))\n ))\n") (subsection "the result of " "ex-81") (display (string-append "generating " "ex-81" "\n")) (newline) (examples #:eval e (require "examples/ex-81.rkt") (make-figure "ex-81" main)))) (begin (begin (section "ex-82") (subsection "source code in " "ex-82" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let ((A (point 0 0))\n (B (point '3cm 0))\n (C (point '1cm '2cm))\n (H (unknown-point)))\n (eqn= (op- H A)\n (rotate 90 (op* (whatever)\n (op- B C))))\n (eqn= (op- H B)\n (rotate 90 (op* (whatever)\n (op- A C))))\n (draw (op-- A B C 'cycle))\n (draw H #:withpen (scale '4bp 'pencircle))\n ))\n") (subsection "the result of " "ex-82") (display (string-append "generating " "ex-82" "\n")) (newline) (examples #:eval e (require "examples/ex-82.rkt") (make-figure "ex-82" main)))) (begin (begin (section "ex-83") (subsection "source code in " "ex-83" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let ((A (point 0 0))\n (B (point '3cm 0))\n (C (point '1cm '2cm))\n (O (unknown-point)))\n (define (f B C)\n (eqn= (op- O\n (mediation 1/2 B C))\n (op* (whatever)\n (rotate 90 (op- B C)))))\n (f B C)\n (f A B)\n (draw (op-- A B C 'cycle))\n (draw O #:withpen (scale '4bp 'pencircle))\n (draw (fullcircle (op* 2 (op-abs (op- O A))) O))))\n") (subsection "the result of " "ex-83") (display (string-append "generating " "ex-83" "\n")) (newline) (examples #:eval e (require "examples/ex-83.rkt") (make-figure "ex-83" main)))) (begin (begin (section "ex-84") (subsection "source code in " "ex-84" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((u '2cm)\n (A (point 0 0))\n (B (point u 0))\n (C (point u u))\n (D (point 0 u))\n (T (unknown-transform))\n (p (op-- A B C D 'cycle))\n )\n (eqn= (transform T A)\n (mediation 1/5 A B))\n (eqn= (transform T B)\n (mediation 1/5 B C))\n (eqn= (transform T C)\n (mediation 1/5 C D))\n (draw p)\n (draw (transform T p))))\n") (subsection "the result of " "ex-84") (display (string-append "generating " "ex-84" "\n")) (newline) (examples #:eval e (require "examples/ex-84.rkt") (make-figure "ex-84" main)))) (begin (begin (section "ex-85") (subsection "source code in " "ex-85" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((u '2cm)\n (A (point 0 0))\n (B (point u 0))\n (C (point u u))\n (D (point 0 u))\n (Tx (unknown-transform))\n (p (op-- A B C D 'cycle))\n )\n (eqn= (transform Tx A)\n (mediation 1/5 A B))\n (eqn= (transform Tx B)\n (mediation 1/5 B C))\n (eqn= (transform Tx C)\n (mediation 1/5 C D))\n (for/fold\n ((p p))\n ((i (in-range 0 100)))\n (draw p)\n (transform Tx p))\n ))\n") (subsection "the result of " "ex-85") (display (string-append "generating " "ex-85" "\n")) (newline) (examples #:eval e (require "examples/ex-85.rkt") (make-figure "ex-85" main)))) (begin (begin (section "ex-86") (subsection "source code in " "ex-86" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((A (point '1cm 0))\n (B (rotate 72 A))\n (C (rotate 72 B))\n (D (rotate 72 C))\n (E (rotate 72 D))\n (p (op-- A B C D E 'cycle))\n (T (unknown-transform)))\n (eqn= (transform T A)\n (mediation 1/5 A B))\n (eqn= (transform T B)\n (mediation 1/5 B C))\n (eqn= (transform T C)\n (mediation 1/5 C D))\n (for/fold\n ((p p))\n ((i (in-range 0 3)))\n (draw p)\n (transform T p))))\n") (subsection "the result of " "ex-86") (display (string-append "generating " "ex-86" "\n")) (newline) (examples #:eval e (require "examples/ex-86.rkt") (make-figure "ex-86" main)))) (begin (begin (section "ex-87") (subsection "source code in " "ex-87" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((u '3mm)\n (p (fullcircle (op* 2 u)))\n (p2 (scale 0.5 p)))\n (for ((x (in-list (list p\n (shift (op* u (dir 30)) p2)\n (shift (op* u (dir 150)) p2)\n ))))\n (fill x #:withcolor (op* 0.8 'white)))))\n") (subsection "the result of " "ex-87") (display (string-append "generating " "ex-87" "\n")) (newline) (examples #:eval e (require "examples/ex-87.rkt") (make-figure "ex-87" main)))) (begin (begin (section "ex-88") (subsection "source code in " "ex-88" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((u '3mm)\n (p (fullcircle (op* 2 u)))\n (p2 (scale 0.5 p))\n (T (unknown-transform)))\n (eqn= (transform T (point 0 0)) (point 0 0))\n (eqn= (transform T (point 1 0)) (point 1 1))\n (eqn= (transform T (point 0 1)) (point 1 0))\n (for ((p (in-list (list p\n (shift (op* u (dir 30)) p2)\n (shift (op* u (dir 150)) p2)\n ))))\n (fill (transform T p) #:withcolor (op* 0.8 'white)))))\n") (subsection "the result of " "ex-88") (display (string-append "generating " "ex-88" "\n")) (newline) (examples #:eval e (require "examples/ex-88.rkt") (make-figure "ex-88" main)))) (begin (begin (section "ex-89") (subsection "source code in " "ex-89" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((u '3mm)\n (p (fullcircle (op* 2 u)))\n (p2 (scale 0.5 p))\n (T (unknown-transform)))\n (eqn= (xpart T) (ypart T) 0)\n (eqn= (xxpart T) 1)\n (eqn= (yxpart T) 2)\n (eqn= (xypart T) 3)\n (eqn= (yypart T) 4)\n (for ((p (in-list (list p\n (shift (op* u (dir 30)) p2)\n (shift (op* u (dir 150)) p2)\n ))))\n (fill (transform T p) #:withcolor (op* 0.8 'white)))))\n") (subsection "the result of " "ex-89") (display (string-append "generating " "ex-89" "\n")) (newline) (examples #:eval e (require "examples/ex-89.rkt") (make-figure "ex-89" main)))) (begin (begin (section "ex-90") (subsection "source code in " "ex-90" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let ((pic-1 (new-picture\n (lambda ()\n (let ((p1 (fullcircle '1cm))\n (p2 (fullcircle '5mm)))\n (draw p1)\n (draw (shift (polar '1cm 45) p2))\n (draw (shift (polar '1cm 135) p2)))))))\n (for ((a (in-list (list (point 0 0)\n (point '1mm '1mm)\n (point '2mm '2mm)))))\n (draw (shift a pic-1)))))\n") (subsection "the result of " "ex-90") (display (string-append "generating " "ex-90" "\n")) (newline) (examples #:eval e (require "examples/ex-90.rkt") (make-figure "ex-90" main)))) (begin (begin (section "ex-91") (subsection "source code in " "ex-91" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let ((pic (unknown-picture)))\n (addto pic 'contour (fullcircle '1cm)\n #:withcolor (op* 0.8 'white))\n (addto pic 'doublepath (fullcircle '1cm)\n #:withpen (scale '0.5bp 'pencircle))\n (addto pic 'also (shift (point '1mm '1mm) pic))\n (draw pic)))\n") (subsection "the result of " "ex-91") (display (string-append "generating " "ex-91" "\n")) (newline) (examples #:eval e (require "examples/ex-91.rkt") (make-figure "ex-91" main)))) (begin (begin (section "ex-92") (subsection "source code in " "ex-92" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let ((u '3mm)\n (mickey (unknown-picture)))\n (addto mickey 'contour (fullcircle (op* 2 u))\n #:withcolor (op* 0.8 'white))\n (addto mickey 'contour (fullcircle u (polar u 150))\n #:withcolor (op* 0.8 'white))\n (addto mickey 'contour (fullcircle u (polar u 30))\n #:withcolor (op* 0.8 'white))\n (draw mickey)))\n") (subsection "the result of " "ex-92") (display (string-append "generating " "ex-92" "\n")) (newline) (examples #:eval e (require "examples/ex-92.rkt") (make-figure "ex-92" main)))) (begin (begin (section "ex-93") (subsection "source code in " "ex-93" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let ((u '3mm)\n (mickey (unknown-picture))\n (T (unknown-transform)))\n (addto mickey 'contour (fullcircle (op* 2 u))\n #:withcolor (op* 0.8 'white))\n (addto mickey 'contour (fullcircle u (polar u 150))\n #:withcolor (op* 0.8 'white))\n (addto mickey 'contour (fullcircle u (polar u 30))\n #:withcolor (op* 0.8 'white))\n (eqn= (transform T (point 0 0 )) (point 0 0))\n (eqn= (transform T (point 1 0 )) (point 1 1))\n (eqn= (transform T (point 0 1 )) (point 1 0))\n (draw (transform T mickey))))\n") (subsection "the result of " "ex-93") (display (string-append "generating " "ex-93" "\n")) (newline) (examples #:eval e (require "examples/ex-93.rkt") (make-figure "ex-93" main)))) (begin (begin (section "ex-94") (subsection "source code in " "ex-94" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let ((mickey (new-picture\n (lambda ()\n (let ((u '3mm))\n (for ((p (in-list\n (list (fullcircle (op* 2 u))\n (fullcircle u (polar u 150))\n (fullcircle u (polar u 30))))))\n (fill p #:withcolor (op* 0.8 'white)))))))\n (T (unknown-transform)))\n (for ((v1 (in-list (list (point 0 0)\n (point 1 0)\n (point 0 1))))\n (v2 (in-list (list (point 0 0)\n (point 1 1)\n (point 1 0)))))\n (eqn= (transform T v1) v2))\n (draw (transform T mickey))))\n") (subsection "the result of " "ex-94") (display (string-append "generating " "ex-94" "\n")) (newline) (examples #:eval e (require "examples/ex-94.rkt") (make-figure "ex-94" main)))) (begin (begin (section "ex-95") (subsection "source code in " "ex-95" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((A (point 0 '1cm))\n (B (rotate 120 A))\n (p (path A (dir-spec (dir 0)) '..\n 'tension 2 '..\n B (dir-spec (dir 120)))))\n (for ((p (in-list (list p (rotate 120 p) (rotate -120 p)))))\n (draw p))\n ))\n") (subsection "the result of " "ex-95") (display (string-append "generating " "ex-95" "\n")) (newline) (examples #:eval e (require "examples/ex-95.rkt") (make-figure "ex-95" main)))) (begin (begin (section "ex-96") (subsection "source code in " "ex-96" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((n 5)\n (alpha (/ (* 2 360) n))\n (A (point 0 '1cm))\n (B (rotate alpha A))\n (p (path A (dir-spec (dir 180)) '..\n 'tension 4 '..\n B (dir-spec (dir (+ 180 alpha))))))\n (draw p #:withcolor 'red)\n (for ((i (in-range 1 5)))\n (draw (rotate (* i (/ 360 n)) p)))\n ))\n") (subsection "the result of " "ex-96") (display (string-append "generating " "ex-96" "\n")) (newline) (examples #:eval e (require "examples/ex-96.rkt") (make-figure "ex-96" main)))) (begin (begin (section "ex-97") (subsection "source code in " "ex-97" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((c0 (fullcircle '1cm (point 0 '1cm) 1 0.5))\n (c1 (rotate 120 c0))\n (c2 (rotate 120 c1))\n (A (point '-0.5cm '1cm))\n (l0 (path A (dir-spec 'down) '..\n (rotate 120 (xscale -1 A)) (dir-spec (rotate 120 (op* -1 'down)))))\n (l1 (rotate 120 l0))\n (l2 (rotate 120 l1)))\n (for ((x (in-list (list c0 c1 c2 l0 l1 l2\n ))))\n (draw x)\n )))\n") (subsection "the result of " "ex-97") (display (string-append "generating " "ex-97" "\n")) (newline) (examples #:eval e (require "examples/ex-97.rkt") (make-figure "ex-97" main)))) (begin (begin (section "ex-98") (subsection "source code in " "ex-98" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((c0 (fullcircle '1cm (point 0 '1cm) 1 0.5))\n (c1 (rotate 90 c0))\n (c2 (rotate 90 c1))\n (c3 (rotate 90 c2))\n (A (point '-0.5cm '1cm))\n (l0 (path A (dir-spec 'down) '..\n (rotate 90 (xscale -1 A)) (dir-spec (rotate 90 (op* -1 'down)))))\n (l1 (rotate 90 l0))\n (l2 (rotate 90 l1))\n (l3 (rotate 90 l2)))\n (for ((x (in-list (list c0 c1 c2 c3 l0 l1 l2 l3\n ))))\n (draw x)\n )))\n") (subsection "the result of " "ex-98") (display (string-append "generating " "ex-98" "\n")) (newline) (examples #:eval e (require "examples/ex-98.rkt") (make-figure "ex-98" main)))) (begin (begin (section "ex-99") (subsection "source code in " "ex-99" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((A (point 0 0))\n (B (point '2cm '1cm))\n (p (fullcircle (op-abs (op- B A))\n (mediation 0.5 A B))))\n (for ((x (in-list (list A B))))\n (draw x #:withpen (scale '4bp 'pencircle)))\n (draw p)))\n") (subsection "the result of " "ex-99") (display (string-append "generating " "ex-99" "\n")) (newline) (examples #:eval e (require "examples/ex-99.rkt") (make-figure "ex-99" main)))) (begin (begin (section "ex-100") (subsection "source code in " "ex-100" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((origin (point 0 0))\n (A (point '2cm '2cm)))\n (for ((i (in-range 4)))\n (drawarrow (rotate (op* (* i -1/3) (op-angle A))\n (op-- origin A))))))\n") (subsection "the result of " "ex-100") (display (string-append "generating " "ex-100" "\n")) (newline) (examples #:eval e (require "examples/ex-100.rkt") (make-figure "ex-100" main)))) (begin (begin (section "ex-101") (subsection "source code in " "ex-101" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((origin (point 0 0))\n (A (point '1cm '2cm))\n (B (point '2cm '1cm))\n (alpha (op- (op-angle A)\n (op-angle B))))\n (drawarrow (op-- origin A))\n (drawarrow (op-- origin B))\n (for ((i (in-range 3)))\n (drawarrow (rotate (op* (* i -1/3) alpha)\n (op-- origin A))))\n ))\n") (subsection "the result of " "ex-101") (display (string-append "generating " "ex-101" "\n")) (newline) (examples #:eval e (require "examples/ex-101.rkt") (make-figure "ex-101" main)))) (begin (begin (section "ex-102") (subsection "source code in " "ex-102" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(require (planet wcy/mpost-wrapper/label))\n(provide main)\n(define (main)\n (let* ((A (point 0 0))\n (B (point '3cm 0))\n (C (point '1cm '2cm)))\n (draw (op-- A B C 'cycle))\n (label-llft (TEX (decimal (op- (op-angle (op- C A))\n (op-angle (op- B A))))) A)\n (label-lrt (TEX (decimal (op- (op-angle (op- A B))\n (op-angle (op- C B))))) B)\n (label-urt (TEX (decimal (op- (op-angle (op- B C))\n (op-angle (op- A C))))) C)\n ))\n") (subsection "the result of " "ex-102") (display (string-append "generating " "ex-102" "\n")) (newline) (examples #:eval e (require "examples/ex-102.rkt") (make-figure "ex-102" main)))) (begin (begin (section "ex-103") (subsection "source code in " "ex-103" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((A (point 0 0))\n (B (point '3cm 0))\n (C (point '1cm '2cm))\n (AA (mediation 0.5 B C))\n (BB (mediation 0.5 A C))\n (CC (mediation 0.5 A B))\n (O (unknown-point))\n (polar (unknown-numeric)))\n (eqn= (op- O (mediation 0.5 BB CC))\n (op* (whatever) (rotate 90 (op- BB CC))))\n (eqn= (op- O (mediation 0.5 AA BB))\n (op* (whatever) (rotate 90 (op- AA BB))))\n (draw (op-- A B C 'cycle))\n (for ((x (in-list (list AA BB CC))))\n (draw x #:withpen (scale '4bp 'pencircle )))\n (draw (fullcircle (op* 2 (op-abs (op- O AA)))\n O))\n (let ((AA (unknown-point))\n (BB (unknown-point))\n (CC (unknown-point))\n (H (unknown-point)))\n (for ((vAA (in-list (list AA BB CC)))\n (vA (in-list (list A B C)))\n (vB (in-list (list B C A)))\n (vC (in-list (list C A B))))\n (eqn= (op- vAA vA)\n (op* (whatever) (rotate 90 (op- vB vC))))\n (eqn= vAA (mediation (whatever) vB vC)))\n (for ((vA (in-list (list A B C)))\n (vAA (in-list (list AA BB CC))))\n (draw (op-- vA vAA)))\n (for ((x (in-list (list AA BB CC))))\n (draw x #:withpen (scale '4bp 'pencircle )))\n (eqn= H (mediation (whatever) A AA))\n (eqn= H (mediation (whatever) B BB))\n (for ((x (in-list (list A B C))))\n (draw (mediation 0.5 x H) #:withpen (scale '4bp 'pencircle)))\n )))\n") (subsection "the result of " "ex-103") (display (string-append "generating " "ex-103" "\n")) (newline) (examples #:eval e (require "examples/ex-103.rkt") (make-figure "ex-103" main)))) (begin (begin (section "ex-104") (subsection "source code in " "ex-104" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((u '2cm)\n (A (point 0 0))\n (B (point (op* 2 u) (op* -0.5 u)))\n (C (point u u))\n (M (unknown-point))\n (h (unknown-point)))\n (draw (op-- A B C 'cycle))\n (eqn= (op- M A)\n (op* (whatever)\n (rotate (op* 0.5\n (op-\n (op-angle (op- B A))\n (op-angle (op- C A))))\n (op- A C))))\n (eqn= (op- M B)\n (op* (whatever)\n (rotate (op* 0.5\n (op-\n (op-angle (op- C B))\n (op-angle (op- A B))))\n (op- B A))))\n (for ((x (in-list (list A B C))))\n (draw (op-- M x)))\n (eqn= (op- M h)\n (op* (whatever) (rotate 90 (op- B C))))\n (eqn= h (mediation (whatever) B C) )\n (draw (fullcircle (op* 2 (op-abs (op- M h)))\n M))))\n") (subsection "the result of " "ex-104") (display (string-append "generating " "ex-104" "\n")) (newline) (examples #:eval e (require "examples/ex-104.rkt") (make-figure "ex-104" main)))) (begin (begin (section "ex-105") (subsection "source code in " "ex-105" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((p (path (point 0 0) (dir-spec 'up) '..\n (point '2cm 0) (dir-spec 'down))))\n (draw p)\n (for ((i (in-list (list 0 0.5 1))))\n (draw (point-of i p) #:withpen (scale '4bp 'pencircle)))\n ))\n") (subsection "the result of " "ex-105") (display (string-append "generating " "ex-105" "\n")) (newline) (examples #:eval e (require "examples/ex-105.rkt") (make-figure "ex-105" main)))) (begin (begin (section "ex-106") (subsection "source code in " "ex-106" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((p (path (point 0 0) (dir-spec 'up) '..\n (point '2cm 0) (dir-spec 'down)))\n (A (point-of 0 p)))\n (draw p)\n (for ((i (in-list (list 0 0.5 1))))\n (let* ((A (point-of i p))\n (B (op+ A (polar '1cm (op-angle (direction-of i p))))))\n (drawarrow (op-- A B) #:withpen (scale '1bp 'pencircle))))))\n") (subsection "the result of " "ex-106") (display (string-append "generating " "ex-106" "\n")) (newline) (examples #:eval e (require "examples/ex-106.rkt") (make-figure "ex-106" main)))) (begin (begin (section "ex-107") (subsection "source code in " "ex-107" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((u '5mm)\n (p (path (point 0 0) (dir-spec '(curl 0)) '..\n (point u (op* 2 u)) '..\n (point (op* 2 u) (op* 1.5 u)) '..\n (point (op* 3 u) (op* 2 u)) '..\n (dir-spec '(curl 0)) (point (op* 4 u) 0))))\n (draw (subpath-of 0 1 p) #:withcolor 'red)\n (draw (subpath-of 1 2 p) #:withcolor 'green)\n (draw (subpath-of 2 3 p) #:withcolor 'blue)\n (draw (subpath-of 3 3.5 p) #:dashed 'evenly)\n (draw (subpath-of 3.5 4 p) #:dashed 'withdots)))\n") (subsection "the result of " "ex-107") (display (string-append "generating " "ex-107" "\n")) (newline) (examples #:eval e (require "examples/ex-107.rkt") (make-figure "ex-107" main)))) (begin (begin (section "ex-108") (subsection "source code in " "ex-108" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((u '1cm)\n (p (path (point 0 0) (dir-spec 'up) '..\n (point u (op* 2 u)) (dir-spec 'up)))\n (q (path (point u 0) (dir-spec 'up) '..\n (point 0 (op* 2 u)) (dir-spec 'up))))\n (draw p)\n (draw (subpath-of 0 0.4 q) #:withpen (scale '1bp 'pencircle))\n (draw (subpath-of 0.6 1 q) #:withpen (scale '1bp 'pencircle))))\n") (subsection "the result of " "ex-108") (display (string-append "generating " "ex-108" "\n")) (newline) (examples #:eval e (require "examples/ex-108.rkt") (make-figure "ex-108" main)))) (begin (begin (section "ex-109") (subsection "source code in " "ex-109" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((u '1cm)\n (a (path (point (op* -1 u) (op* -0.2 u)) '..\n 'tension 1.2 '..\n (point u (op* -0.2 u)) (dir-spec 'down)))\n (b (rotate 90 a))\n (c (rotate 90 b))\n (d (rotate 90 c)))\n (fill (buildcycle a b c d) #:withcolor (op* 0.8 'white))\n (map draw (list a b c d))))\n") (subsection "the result of " "ex-109") (display (string-append "generating " "ex-109" "\n")) (newline) (examples #:eval e (require "examples/ex-109.rkt") (make-figure "ex-109" main)))) (begin (begin (section "ex-110") (subsection "source code in " "ex-110" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((u '1cm)\n (c1 (fullcircle u))\n (c2 (fullcircle u (point 0 (op* 0.5 u)))))\n (draw c1 #:dashed 'evenly)\n (draw c2 #:dashed 'evenly)\n (draw (buildcycle c1 c2) #:withpen (scale '1bp 'pencircle))))\n") (subsection "the result of " "ex-110") (display (string-append "generating " "ex-110" "\n")) (newline) (examples #:eval e (require "examples/ex-110.rkt") (make-figure "ex-110" main)))) (begin (begin (section "ex-111") (subsection "source code in " "ex-111" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((u '1cm)\n (a (fullcircle (op* 2 u) (point (op* 0.5 u) 0)))\n (b (rotate (/ 360 3) a))\n (c (rotate (/ 360 3) b)))\n (fill a #:withcolor 'red)\n (fill b #:withcolor 'green)\n (fill c #:withcolor 'blue)\n (fill (buildcycle a b) #:withcolor (op+ 'red 'green))\n (fill (buildcycle b c) #:withcolor (op+ 'green 'blue))\n (fill (buildcycle c a) #:withcolor (op+ 'blue 'red))\n (fill (buildcycle a b c) #:withcolor 'white)\n (draw a) (draw b) (draw c)\n ))\n") (subsection "the result of " "ex-111") (display (string-append "generating " "ex-111" "\n")) (newline) (examples #:eval e (require "examples/ex-111.rkt") (make-figure "ex-111" main)))) (begin (begin (section "ex-112") (subsection "source code in " "ex-112" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (define (compute_curve f xmin xmax xinc)\n (apply op.. (for/list ((x (in-range xmin xmax xinc)))\n (point x (f x)))))\n (define (f x)\n (op+ 1 (op** x 2)))\n (define (g x)\n (op- 2 (op** (op- x 1) 2)))\n (let* ((p (scale '1cm (compute_curve f -1 1.5 0.1)))\n (q (scale '1cm (compute_curve g -0.5 2 0.1))))\n (fill (buildcycle p (op-reverse q)) #:withcolor (op+ 'red 'green))\n (draw p #:withpen (scale '1bp 'pencircle))\n (draw q #:withpen (scale '1bp 'pencircle))\n (draw (op-- (point '-1cm 0) (point '2cm 0)))\n (draw (op-- (point 0 (op* (g -0.5) '1cm))\n (point 0 (op* (f 1.5) '1cm))))\n ))\n") (subsection "the result of " "ex-112") (display (string-append "generating " "ex-112" "\n")) (newline) (examples #:eval e (require "examples/ex-112.rkt") (make-figure "ex-112" main)))) (begin (begin (section "ex-113") (subsection "source code in " "ex-113" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((p (path (point 0 0) (dir-spec 'up) '..\n (point '2cm 0) (dir-spec 'up)))\n (q (path (point 0 '1cm) (dir-spec (dir -60)) '..\n (point '1cm '-1cm) '..\n (dir-spec (dir 60)) (point '2cm '1cm))))\n (draw p)\n (draw q)\n (draw (intersectionpoint p q) #:withpen (scale '4bp 'pencircle))))\n") (subsection "the result of " "ex-113") (display (string-append "generating " "ex-113" "\n")) (newline) (examples #:eval e (require "examples/ex-113.rkt") (make-figure "ex-113" main)))) (begin (begin (section "ex-114") (subsection "source code in " "ex-114" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((p (path (point 0 0) (dir-spec 'up) '..\n (point '2cm 0) (dir-spec 'up)))\n (q (path (point 0 '1cm) (dir-spec (dir -60)) '..\n (point '1cm '-1cm) '..\n (dir-spec (dir 60)) (point '2cm '1cm)))\n (a (unknown-numeric))\n (b (unknown-numeric)))\n (draw p)\n (draw q)\n (eqn= (point a (whatever))\n (intersectiontimes p q))\n (draw (point-of a p) #:withpen (scale '4bp 'pencircle))))\n") (subsection "the result of " "ex-114") (display (string-append "generating " "ex-114" "\n")) (newline) (examples #:eval e (require "examples/ex-114.rkt") (make-figure "ex-114" main)))) (begin (begin (section "ex-115") (subsection "source code in " "ex-115" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((A (point 0 '1cm))\n (B (rotate 120 A))\n (p (path A (dir-spec (dir 0)) '..\n 'tension 2 '..\n B (dir-spec (dir 120))))\n (a (unknown-numeric)))\n (eqn= (point a (whatever))\n (intersectiontimes p (rotate 120 p)))\n (draw (subpath-of 0 (op- a 0.02) p))\n (draw (subpath-of (op+ a 0.02) 1 p))\n (draw (subpath-of 0 (op- a 0.02) (rotate 120 p)))\n (draw (subpath-of (op+ a 0.02) 1 (rotate 120 p)))\n (draw (subpath-of 0 (op- a 0.02) (rotate -120 p)))\n (draw (subpath-of (op+ a 0.02) 1 (rotate -120 p)))))\n") (subsection "the result of " "ex-115") (display (string-append "generating " "ex-115" "\n")) (newline) (examples #:eval e (require "examples/ex-115.rkt") (make-figure "ex-115" main)))) (begin (begin (section "ex-116") (subsection "source code in " "ex-116" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (draw-extra n p op-x)\n (let ((pn (point-of n p)))\n (draw (op-- pn (op-x pn (op* '4mm (unitvector (direction-of n p))))))))\n\n(define (main)\n (let* ((u '2cm)\n (A0 (op* u 'up))\n (A (reverse (for/fold ((r (list A0)))\n ((i (in-range 1 11)))\n (cons (rotate 72 (car r)) r))))\n (B* (for/list ((A_i (in-list A))\n (A_i+1 (in-list (cdr A)))\n (i (in-range 0 10)))\n (mediation 0.5 A_i A_i+1)))\n (B (for/list ((b_i (in-range 0 10)))\n (list-ref B* (if (= b_i 5) 0 b_i))))\n (C (for/list ((b_i (in-list B)))\n (op* 0.8 b_i))))\n (for ((A_i (in-list A))\n (A_i+1 (in-list (cdr A))))\n (let* ((p_i (op-- A_i A_i+1)))\n (draw p_i)\n (draw-extra 1 p_i op+)\n (draw-extra 0 p_i op-)))\n (let ((p (for/list ((i (in-range 0 5)))\n (let* ((p_i (path (list-ref B i) '--- \n (list-ref C i) '..\n (list-ref C (+ 2 i)) (dir-spec (dir (* 72 i)))\n )))\n (draw p_i)\n (draw-extra 2 p_i op+ )\n (draw-extra 0 p_i op- ) p_i))))\n (for ((p_i (in-list p)))\n (draw (subpath-of 1 1.4 p_i) #:withpen (scale '4bp 'pencircle) #:withcolor 'white)\n (draw (subpath-of 0 1.5 p_i) ))\n (for ((A_i (in-list A))\n (B_i (in-list B))\n (C_i (in-list C)))\n (for ((x (in-list (list A_i B_i C_i))))\n (draw x #:withpen (scale '4bp 'pencircle)))))))\n") (subsection "the result of " "ex-116") (display (string-append "generating " "ex-116" "\n")) (newline) (examples #:eval e (require "examples/ex-116.rkt") (make-figure "ex-116" main)))) (begin (begin (section "ex-117") (subsection "source code in " "ex-117" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((u '2cm)\n (A (op* u 'up))\n (B (mediation 0.5 A (rotate 72 A)))\n (C (op* 0.8 B))\n (p (op-- (mediation -0.2 A (rotate 72 A))\n (mediation 1.2 A (rotate 72 A)))))\n (for ((i (in-range 6)))\n (draw (rotate (* i 72) p)))\n (let* ((p* (path B '--- C '.. (rotate (* 2 72) C) (dir-spec 'right)))\n (p (op& (path (op- (point-of 0 p*)\n (op* '4mm (unitvector (direction-of 0 p*))))\n '--\n (point-of 0 p*))\n p*\n (path (point-of 2 p*) \n '--\n (op+ (point-of 2 p*)\n (op* '4mm (unitvector (direction-of 2 p*)))))))\n (E (intersectionpoint p (rotate 72 p)))\n (q (cutbefore p (fullcircle '-2mm E)))\n (r (cutafter p (fullcircle '2mm E))))\n (for ((i (in-range 6)))\n (let ((rotate-it (lambda (x) (rotate (* 72 i) x))))\n (for ((x (in-list (list q r A))))\n (draw (rotate-it x)))\n (for ((x (in-list (list A B C))))\n (draw (rotate-it x) #:withpen (scale '4bp 'pencircle))))))))\n") (subsection "the result of " "ex-117") (display (string-append "generating " "ex-117" "\n")) (newline) (examples #:eval e (require "examples/ex-117.rkt") (make-figure "ex-117" main)))) (begin (begin (section "ex-118") (subsection "source code in " "ex-118" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (for ((i (in-range 4)))\n (draw (rotate (* i 90) (op* '1cm 'right))\n #:withpen (scale '4bp 'pencircle))))\n") (subsection "the result of " "ex-118") (display (string-append "generating " "ex-118" "\n")) (newline) (examples #:eval e (require "examples/ex-118.rkt") (make-figure "ex-118" main)))) (begin (begin (section "ex-119") (subsection "source code in " "ex-119" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (draw (apply op-- \n `(,@(for/list ((i (in-range 4)))\n (rotate (* i 90) (op* '1cm 'right)))\n cycle))))\n") (subsection "the result of " "ex-119") (display (string-append "generating " "ex-119" "\n")) (newline) (examples #:eval e (require "examples/ex-119.rkt") (make-figure "ex-119" main)))) (begin (begin (section "ex-120") (subsection "source code in " "ex-120" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let ((n 5))\n (draw (apply op-- \n `(,@(for/list ((i (in-range n)))\n (rotate (/ (* i 360) n) (op* '1cm 'up)))\n cycle)))))\n") (subsection "the result of " "ex-120") (display (string-append "generating " "ex-120" "\n")) (newline) (examples #:eval e (require "examples/ex-120.rkt") (make-figure "ex-120" main)))) (begin (begin (section "ex-121") (subsection "source code in " "ex-121" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let ((n 7))\n (draw (apply op-- \n `(,@(for/list ((i (in-range n)))\n (rotate (/ (* i 360) n) (op* '1cm 'up)))\n cycle)))))\n") (subsection "the result of " "ex-121") (display (string-append "generating " "ex-121" "\n")) (newline) (examples #:eval e (require "examples/ex-121.rkt") (make-figure "ex-121" main)))) (begin (begin (section "ex-122") (subsection "source code in " "ex-122" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((p (op.. (point 0 0)\n (point '-1cm '2cm)\n (point '2cm '1cm)\n (point '1cm 0)))\n (n 10)\n (length-p (length p)))\n (draw p)\n (for ((i (in-range (+ 1 n))))\n (draw (point-of (op* (/ i n)\n length-p)\n p)\n #:withpen (scale '4bp 'pencircle)))))\n") (subsection "the result of " "ex-122") (display (string-append "generating " "ex-122" "\n")) (newline) (examples #:eval e (require "examples/ex-122.rkt") (make-figure "ex-122" main)))) (begin (begin (section "ex-123") (subsection "source code in " "ex-123" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((p (op.. (point 0 0)\n (point '-1cm '2cm)\n (point '2cm '1cm)\n (point '1cm 0)))\n (n 10)\n (length-p (length p)))\n (draw p)\n (for ((i (in-range 0 1 (/ 1 n))))\n (let ((pi (point-of (op* i length-p) p)))\n (drawarrow (op-- pi\n (shift pi (op* '1cm (unitvector (direction-of (op* i length-p) p))))))))))\n") (subsection "the result of " "ex-123") (display (string-append "generating " "ex-123" "\n")) (newline) (examples #:eval e (require "examples/ex-123.rkt") (make-figure "ex-123" main)))) (begin (begin (section "ex-124") (subsection "source code in " "ex-124" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((u '1cm))\n (draw (op-- (point (op* -2 u) 0)\n (point (op* 2 u) 0)))\n (draw (op-- (point 0 (op* -2 u))\n (point 0 (op* 2 u))))\n (for ((i (in-range -2 3 1)))\n (draw (op-- (point (op* i u) (op/ u 20))\n (point (op* i u) (op/ u -20))))\n (draw (op-- (point (op/ u 20) (op* i u))\n (point (op/ u -20) (op* i u)))))))\n") (subsection "the result of " "ex-124") (display (string-append "generating " "ex-124" "\n")) (newline) (examples #:eval e (require "examples/ex-124.rkt") (make-figure "ex-124" main)))) (begin (begin (section "ex-125") (subsection "source code in " "ex-125" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((u '1cm))\n (draw (op-- (point (op* -2 u) 0)\n (point (op* 2 u) 0)))\n (draw (op-- (point 0 (op* -2 u))\n (point 0 (op* 2 u))))\n (for ((i (in-range -2 3 1)))\n (draw (op-- (point (op* i u) (op/ u 10))\n (point (op* i u) (op/ u -10))))\n (draw (op-- (point (op/ u 10) (op* i u))\n (point (op/ u -10) (op* i u)))))\n (for ((i (in-range -2 2.01 0.2)))\n (draw (op-- (point (op* i u) (op/ u 20))\n (point (op* i u) (op/ u -20))))\n (draw (op-- (point (op/ u 20) (op* i u))\n (point (op/ u -20) (op* i u)))))))\n") (subsection "the result of " "ex-125") (display (string-append "generating " "ex-125" "\n")) (newline) (examples #:eval e (require "examples/ex-125.rkt") (make-figure "ex-125" main)))) (begin (begin (section "ex-126") (subsection "source code in " "ex-126" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((u '1cm))\n (draw (op-- (point (op* -2 u) 0)\n (point (op* 2 u) 0)))\n (draw (op-- (point 0 (op* -2 u))\n (point 0 (op* 2 u))))\n (for ((i (in-range -2 2.01 1)))\n (draw (op-- (point (op* i u) (op* u 2))\n (point (op* i u) (op* u -2))))\n (draw (op-- (point (op* u 2) (op* i u))\n (point (op* u -2) (op* i u))))\n )))\n") (subsection "the result of " "ex-126") (display (string-append "generating " "ex-126" "\n")) (newline) (examples #:eval e (require "examples/ex-126.rkt") (make-figure "ex-126" main)))) (begin (begin (section "ex-127") (subsection "source code in " "ex-127" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((u '1cm))\n (draw (op-- (point (op* -2 u) 0)\n (point (op* 2 u) 0)))\n (draw (op-- (point 0 (op* -2 u))\n (point 0 (op* 2 u))))\n (for ((i (in-range -2 2.01 1)))\n (draw (op-- (point (op* i u) (op* u 2))\n (point (op* i u) (op* u -2))))\n (draw (op-- (point (op* u 2) (op* i u))\n (point (op* u -2) (op* i u))))\n )\n (for ((i (in-range -2 2.01 0.2)))\n (draw (op-- (point (op* i u) (op* u 2))\n (point (op* i u) (op* u -2)))\n #:withpen (scale '0.2bp 'pencircle))\n (draw (op-- (point (op* u 2) (op* i u))\n (point (op* u -2) (op* i u)))\n #:withpen (scale '0.2bp 'pencircle))\n )))\n") (subsection "the result of " "ex-127") (display (string-append "generating " "ex-127" "\n")) (newline) (examples #:eval e (require "examples/ex-127.rkt") (make-figure "ex-127" main)))) (begin (begin (section "ex-128") (subsection "source code in " "ex-128" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((u '5mm))\n (define (f x)\n (op- (op** x 2 ) 0.1))\n (define (my-draw x)\n (draw (scale u x)))\n (define (f-x x)\n (point x (f x)))\n (define (axes xmin xmax ymin ymax)\n (my-draw (op-- (point xmin 0) (point xmax 0)))\n (my-draw (op-- (point 0 ymin) (point 0 ymax))))\n (define (courbe f xmin xmax M)\n (let ((x-range (in-range xmin xmax (/ (- xmax xmin) M))))\n (my-draw (apply op-- (map f-x (stream->list x-range))))))\n (define (newton f y h M)\n (define (diff-f x)\n (op/ (op- (f (op+ x h)) (f x)) h))\n (define (newton-helper x)\n (op- x (op/ (f x) (diff-f x))))\n (for/fold ((x y)\n (t (newton-helper y)))\n ((i (in-range M)))\n (my-draw (op-- (f-x x) (point t 0) (f-x t)))\n (values t (newton-helper x))))\n (axes -0.5 2 -0.5 4)\n (courbe f -0.5 2 100)\n (newton f 2 0.01 10)))\n") (subsection "the result of " "ex-128") (display (string-append "generating " "ex-128" "\n")) (newline) (examples #:eval e (require "examples/ex-128.rkt") (make-figure "ex-128" main))) (begin (section "ex-128-b") (subsection "source code in " "ex-128-b" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((u '5mm))\n (define (f x)\n (op- (op** x 2 ) 0.1))\n (define (my-draw x)\n (draw (scale u x)))\n (define (f-x x)\n (point x (f x)))\n (define (axes xmin xmax ymin ymax)\n (my-draw (op-- (point xmin 0) (point xmax 0)))\n (my-draw (op-- (point 0 ymin) (point 0 ymax))))\n (define (courbe f xmin xmax M)\n (let ((x-range (in-range xmin xmax (/ (- xmax xmin) M))))\n (my-draw (apply op-- (map f-x (stream->list x-range))))))\n (define (newton f y h M)\n (define (diff-f x)\n (op/ (op- (f (op+ x h)) (f x)) h))\n (define (newton-helper x)\n (op- x (op/ (f x) (diff-f x))))\n (for/fold ((x y)\n (t (newton-helper y)))\n ((i (in-range M)))\n (my-draw (op-- (f-x x) (point t 0) (f-x t)))\n (values t (newton-helper x))))\n (axes -0.5 2 -0.5 4)\n (courbe f -0.5 2 100)\n (newton f 2 0.01 10)))\n") (subsection "the result of " "ex-128-b") (display (string-append "generating " "ex-128-b" "\n")) (newline) (examples #:eval e (require "examples/ex-128-b.rkt") (make-figure "ex-128-b" main)))) (begin (begin (section "ex-129") (subsection "source code in " "ex-129" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((T (unknown-transform))\n (u '1cm)\n (z0 (point 0 0))\n (z1 (point (op* 2 u) 0))\n (z3 (rotate 90 z1))\n (z2 (op+ z1 z3))\n (p (op-- z0 z1 z2 z3 'cycle)))\n (for ((a (in-list (list z0 z1 z2)))\n (b (in-list (list z1 z2 z3))))\n (eqn= (transform T a) (mediation 0.1 a b)))\n (fill p #:withcolor (op* 0.8 'white))\n (fill (transform T p) #:withcolor 'white)\n ))\n") (subsection "the result of " "ex-129") (display (string-append "generating " "ex-129" "\n")) (newline) (examples #:eval e (require "examples/ex-129.rkt") (make-figure "ex-129" main)))) (begin (begin (section "ex-130") (subsection "source code in " "ex-130" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((T (unknown-transform))\n (u '1cm)\n (z0 (point 0 0))\n (z1 (point (op* 2 u) 0))\n (z3 (rotate 90 z1))\n (z2 (op+ z1 z3))\n (p (op-- z0 z1 z2 z3 'cycle)))\n (for ((a (in-list (list z0 z1 z2)))\n (b (in-list (list z1 z2 z3))))\n (eqn= (transform T a) (mediation 0.1 a b)))\n (for/fold ((p p))\n ((i (in-range 201)))\n (fill p #:withcolor (if (= (modulo i 2) 0)\n (op* 0.8 'white)\n 'white))\n (transform T p))))\n") (subsection "the result of " "ex-130") (display (string-append "generating " "ex-130" "\n")) (newline) (examples #:eval e (require "examples/ex-130.rkt") (make-figure "ex-130" main)))) (begin (begin (section "ex-131") (subsection "source code in " "ex-131" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((T (unknown-transform))\n (u '1cm)\n (z (point 0 (op* 2 u)))\n (n 5)\n (zn (map (lambda (i) (rotate (/ (* 360 i) n)\n z))\n (stream->list (in-range n))))\n (p (apply op-- `(,@zn cycle))))\n (for ((i (in-range 1 4)))\n (eqn= (transform T (list-ref zn i))\n (mediation 0.1 \n (list-ref zn i)\n (list-ref zn (+ 1 i)))))\n (for/fold ((p p))\n ((i (in-range 201)))\n (fill p #:withcolor (if (= (modulo i 2) 0)\n (op* 0.8 'white)\n 'white))\n (transform T p))))\n") (subsection "the result of " "ex-131") (display (string-append "generating " "ex-131" "\n")) (newline) (examples #:eval e (require "examples/ex-131.rkt") (make-figure "ex-131" main)))) (begin (begin (section "ex-132") (subsection "source code in " "ex-132" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((u '1cm)\n (n 7)\n (A0 (point u 0))\n (An (map (lambda (i) (rotate (/ (* 360 i) n)\n A0))\n (stream->list (in-range n)))))\n (for ((Ai (in-list An)))\n (draw Ai #:withpen (scale '4bp 'pencircle)))\n (for* ((i (in-range n))\n (j (in-range n)))\n (when (not (= i j))\n (draw (op-- (list-ref An i)\n (list-ref An j)))))))\n") (subsection "the result of " "ex-132") (display (string-append "generating " "ex-132" "\n")) (newline) (examples #:eval e (require "examples/ex-132.rkt") (make-figure "ex-132" main)))) (begin (begin (section "ex-133") (subsection "source code in " "ex-133" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (define (funcall f) (f))\n (let* ((u '2cm)\n (n 4)\n (m 5)\n (An (map funcall (make-list n unknown-point)))\n (Bn (map funcall (make-list m unknown-point))))\n (for ((Xn (in-list (list An Bn))))\n (for ((Xi (in-list Xn))\n (Xi+1 (in-list (cdr Xn))))\n (eqn= (op- Xi+1 Xi)\n (point 0 (op* 0.2 u)))))\n (eqn= (apply op+ An) (point 0 0))\n (eqn= (apply op+ Bn) (point (op* 4 u) 0))\n (define (draw-point x) (draw x #:withpen (scale '4bp 'pencircle)))\n (map draw-point An)\n (map draw-point Bn)\n (for* ((Ai (in-list An))\n (Bi (in-list Bn)))\n (draw (op-- Ai Bi)))))\n") (subsection "the result of " "ex-133") (display (string-append "generating " "ex-133" "\n")) (newline) (examples #:eval e (require "examples/ex-133.rkt") (make-figure "ex-133" main)))) (begin (begin (section "ex-134") (subsection "source code in " "ex-134" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (define (funcall f) (f))\n (let* ((u '1cm)\n (n 3)\n (m 3)\n (An (map funcall (make-list n unknown-point)))\n (Bn (map funcall (make-list m unknown-point))))\n (for ((Xn (in-list (list An Bn))))\n (for ((Xi (in-list Xn))\n (Xi+1 (in-list (cdr Xn))))\n (eqn= (op- Xi+1 Xi)\n (point (op* 0.5 u) 0))))\n (eqn= (apply op+ An) (point 0 0))\n (eqn= (apply op+ Bn) (point 0 (op* 4 u)))\n (define (draw-point x) (draw x #:withpen (scale '4bp 'pencircle)))\n (map draw-point An)\n (map draw-point Bn)\n (for* ((Ai (in-list An))\n (Bi (in-list Bn)))\n (draw (op-- Ai Bi)))))\n") (subsection "the result of " "ex-134") (display (string-append "generating " "ex-134" "\n")) (newline) (examples #:eval e (require "examples/ex-134.rkt") (make-figure "ex-134" main)))) (begin (begin (section "ex-135") (subsection "source code in " "ex-135" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((n 6)\n (P (lambda (d)\n (for/list ((i (in-range (+ 1 n))))\n (rotate (/ (* i 360) n)\n (op* d 'right)))))\n (An (P '1cm))\n (Bn (P '2cm)))\n (define (draw-point x) (draw x #:withpen (scale '4bp 'pencircle)))\n (map draw-point An)\n (map draw-point Bn)\n (for ((Ai (in-list An))\n (Ai+1 (in-list (cdr An)))\n (Bi (in-list Bn))\n (Bi+1 (in-list (cdr Bn))))\n (draw (op-- Ai Ai+1 Bi+1 Bi)))))\n") (subsection "the result of " "ex-135") (display (string-append "generating " "ex-135" "\n")) (newline) (examples #:eval e (require "examples/ex-135.rkt") (make-figure "ex-135" main)))) (begin (begin (section "ex-136") (subsection "source code in " "ex-136" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((n 5)\n (O (point 0 0))\n (A (op* '1cm 'up))\n (B ((rotate-around A 30 )\n (op* '2cm 'up)))\n (C (op* '2cm 'up))\n (D ((rotate-around A -30)\n (op* '2cm 'up))))\n (define (draw-point x) (draw x #:withpen (scale '4bp 'pencircle)))\n (define ((rotate-draw i f) obj) (f (rotate (/ (* i 360) n) obj)))\n (for ((i (in-range n)))\n ((rotate-draw i draw) (op-- O A C))\n ((rotate-draw i draw) (op-- B A D))\n (map (rotate-draw i draw-point) (list A B C D)))))\n") (subsection "the result of " "ex-136") (display (string-append "generating " "ex-136" "\n")) (newline) (examples #:eval e (require "examples/ex-136.rkt") (make-figure "ex-136" main)))) (begin (begin (section "ex-137") (subsection "source code in " "ex-137" ".rkt") (codeblock "#lang racket\n(require (planet wcy/mpost-wrapper))\n(provide main)\n(define (main)\n (let* ((u '1cm)\n (p (yscale (op* 3 u) (xscale (op* -1 u) 'fullcircle))))\n (draw p)\n (define (draw-point x) (draw x #:withpen (scale '4bp 'pencircle)))\n (for ((i (in-range 2 6.1 0.5)))\n (draw (path (point-of 2 p) (dir-spec 'down) \n '..\n (point-of i p))))))\n") (subsection "the result of " "ex-137") (display (string-append "generating " "ex-137" "\n")) (newline) (examples #:eval e (require "examples/ex-137.rkt") (make-figure "ex-137" main)))) (begin (begin (section "ex-138") (subsection "source code in " "ex-138" ".rkt") (codeblock "#lang racket\r\n(require (planet wcy/mpost-wrapper))\r\n(provide main)\r\n(define (main)\r\n (define (i-of-360 i n) (/ (* 360 i ) n))\r\n (let* ((u '0.5cm)\r\n (P* (for/list ((i (in-range 5)))\r\n (rotate (i-of-360 i 5)\r\n (op* u 'down))))\r\n (P `(,@P* ,(car P*)))\r\n (Q* (for/list ((Pi (in-list P))\r\n (Pi+1 (in-list (cdr P))))\r\n (op* 3 (mediation 0.5 Pi Pi+1))))\r\n (Q `(,@Q* ,(car Q*))) \r\n (R* (for/list ((Qi (in-list Q))\r\n (Qi+1 (in-list (cdr Q)))\r\n (Pi+1 (in-list (cdr P))))\r\n (op* 1/3 (op+ Qi Qi+1 Pi+1))))\r\n (R `(,@R* ,(car R*)))\r\n (S (map (curry op* 1.5) Q)))\r\n (for ((Pi (in-list P))\r\n (Pi+1 (in-list (cdr P)))\r\n (Qi (in-list Q))\r\n (Qi+1 (in-list (cdr Q)))\r\n (Ri (in-list R))\r\n (Si (in-list S))\r\n (Si+1 (in-list (cdr S))))\r\n (draw (op-- Pi Pi+1))\r\n (draw (op-- Pi+1 Ri))\r\n (draw (op-- Qi Ri))\r\n (draw (op-- Ri Qi+1))\r\n (draw (op-- Qi Si))\r\n (draw (op-- Si Si+1))\r\n )))\r\n") (subsection "the result of " "ex-138") (display (string-append "generating " "ex-138" "\n")) (newline) (examples #:eval e (require "examples/ex-138.rkt") (make-figure "ex-138" main)))) (begin (begin (section "ex-139") (subsection "source code in " "ex-139" ".rkt") (codeblock "#lang racket\r\n(require (planet wcy/mpost-wrapper))\r\n(provide main)\r\n(define (main)\r\n (define (i-of-360 i n) (/ (* 360 i ) n))\r\n (let* ((u '0.5cm)\r\n (P* (for/list ((i (in-range 5)))\r\n (rotate (i-of-360 i 5)\r\n (op* u 'down))))\r\n (P `(,@P* ,(car P*)))\r\n (Q* (for/list ((Pi (in-list P))\r\n (Pi+1 (in-list (cdr P))))\r\n (op* 3 (mediation 0.5 Pi Pi+1))))\r\n (Q `(,@Q* ,(car Q*))) \r\n (R* (for/list ((Qi (in-list Q))\r\n (Qi+1 (in-list (cdr Q)))\r\n (Pi+1 (in-list (cdr P))))\r\n (op* 1/3 (op+ Qi Qi+1 Pi+1))))\r\n (R `(,@R* ,(car R*)))\r\n (S (map (curry op* 1.5) Q)))\r\n (for ((Pi (in-list P))\r\n (Pi+1 (in-list (cdr P)))\r\n (Qi (in-list Q))\r\n (Qi+1 (in-list (cdr Q)))\r\n (Ri (in-list R))\r\n (Si (in-list S))\r\n (Si+1 (in-list (cdr S))))\r\n (draw (op-- Pi Pi+1))\r\n (draw (op-- Pi+1 Ri))\r\n (draw (op-- Qi Ri))\r\n (draw (op-- Ri Qi+1))\r\n (draw (op-- Qi Si))\r\n (draw (op-- Si Si+1)))\r\n (draw (op-- (list-ref P 2) (list-ref P 3) (list-ref P 4) (list-ref P 0) (list-ref P 1) \r\n (list-ref R 0) (list-ref Q 0) (list-ref R 4) (list-ref Q 4) (list-ref R 3)\r\n (list-ref Q 3) (list-ref R 2) (list-ref Q 2) \r\n (list-ref S 2) (list-ref S 3) (list-ref S 4) (list-ref S 0) (list-ref S 1) \r\n (list-ref Q 1) (list-ref R 1) 'cycle)\r\n #:withpen (scale '2bp 'pencircle))))\r\n") (subsection "the result of " "ex-139") (display (string-append "generating " "ex-139" "\n")) (newline) (examples #:eval e (require "examples/ex-139.rkt") (make-figure "ex-139" main)))) (begin (begin (section "ex-140") (subsection "source code in " "ex-140" ".rkt") (codeblock "#lang racket\r\n(require (planet wcy/mpost-wrapper))\r\n(provide main)\r\n(define (main)\r\n (for ((i (in-range 1.0 0.0 -0.01 )))\r\n (fill (fullcircle (op* i '2cm))\r\n #:withcolor (op* i 'white)))\r\n (draw (fullcircle '2cm)\r\n #:withpen (scale '2bp 'pencircle)))\r\n") (subsection "the result of " "ex-140") (display (string-append "generating " "ex-140" "\n")) (newline) (examples #:eval e (require "examples/ex-140.rkt") (make-figure "ex-140" main)))) (begin (begin (section "ex-141") (subsection "source code in " "ex-141" ".rkt") (codeblock "#lang racket\r\n(require (planet wcy/mpost-wrapper))\r\n(provide main)\r\n(define (main)\r\n (let* ((u '5mm)\r\n (p (shift (point -1 0)\r\n (op.. (point 0 0)\r\n (point -1 1)\r\n (point 2 0)\r\n (point 0 -3)\r\n 'cycle))))\r\n (for ((i (in-range 1.0 0.0 -0.01 )))\r\n (fill (scale (op* i u) p)\r\n #:withcolor (op* i 'white)))\r\n (draw (scale u p)\r\n #:withpen (scale '2bp 'pencircle))))\r\n") (subsection "the result of " "ex-141") (display (string-append "generating " "ex-141" "\n")) (newline) (examples #:eval e (require "examples/ex-141.rkt") (make-figure "ex-141" main)))) (begin (begin (section "ex-142") (subsection "source code in " "ex-142" ".rkt") (codeblock "#lang racket\r\n(require (planet wcy/mpost-wrapper))\r\n(provide main)\r\n(define (main)\r\n (let* ((z0 (point 50 50))\r\n (z1 (rotate 90 z0))\r\n (z2 (rotate 90 z1))\r\n (z3 (rotate 90 z2))\r\n (carre (op-- z0 z1 z2 z3 'cycle))\r\n (s 0.01)\r\n (z4 (mediation s z2 z3))\r\n (z5 (mediation s z1 z0))\r\n (rect (op-- z1 z2 z3 z4 z5 'cycle)))\r\n (for ((i (in-range 0.0 1.0 s )))\r\n (fill (shift (op* i (op- z0 z1)) rect)\r\n #:withcolor (op* i 'white)))\r\n (draw carre\r\n #:withpen (scale '2bp 'pencircle))))\r\n") (subsection "the result of " "ex-142") (display (string-append "generating " "ex-142" "\n")) (newline) (examples #:eval e (require "examples/ex-142.rkt") (make-figure "ex-142" main)))) (begin (begin (section "ex-143") (subsection "source code in " "ex-143" ".rkt") (codeblock "#lang racket\r\n(require (planet wcy/mpost-wrapper))\r\n(provide main)\r\n(define (main)\r\n (let* ((z0 (point 50 50))\r\n (z1 (rotate 90 z0))\r\n (z2 (rotate 90 z1))\r\n (z3 (rotate 90 z2))\r\n (carre (op-- z0 z1 z2 z3 'cycle))\r\n (s 0.01))\r\n (for ((i (in-range 1 s (- s) )))\r\n (fill (scale i carre)\r\n #:withcolor (op* i 'white)))))\r\n") (subsection "the result of " "ex-143") (display (string-append "generating " "ex-143" "\n")) (newline) (examples #:eval e (require "examples/ex-143.rkt") (make-figure "ex-143" main)))) (begin (begin (section "ex-144") (subsection "source code in " "ex-144" ".rkt") (codeblock "#lang racket\r\n(require (planet wcy/mpost-wrapper))\r\n(provide main)\r\n(define (main)\r\n (define (degrade q p M N)\r\n (let ((a (length p))\r\n (b (length q)))\r\n (for ((i (in-range 0 (+ 1 M))))\r\n (draw (apply op.. \r\n `(,(mediation (/ i M) (point-of 0 p) (point-of 0 q))\r\n ,@(for/list ((j (in-range 0 (+ 1 N))))\r\n (mediation (/ i M )\r\n (point-of (op* a (/ j N)) p)\r\n (point-of (op* b (/ j N)) q)))))))))\r\n (let* ((u '1cm))\r\n (degrade (op.. (point (op* -0.1 u)\r\n (op* -0.1 u))\r\n (point (op* 0.1 u)\r\n (op* 0.1 u))\r\n 'cycle)\r\n (op-- (point (op* -1 u)\r\n (op* -1 u))\r\n (point (op* 1 u)\r\n (op* -1 u))\r\n (point (op* 1 u)\r\n (op* 1 u))\r\n (point (op* -1 u)\r\n (op* 1 u))\r\n 'cycle) 10 100)))\r\n \r\n ") (subsection "the result of " "ex-144") (display (string-append "generating " "ex-144" "\n")) (newline) (examples #:eval e (require "examples/ex-144.rkt") (make-figure "ex-144" main)))) (begin (begin (section "ex-145") (subsection "source code in " "ex-145" ".rkt") (codeblock "#lang racket\r\n(require (planet wcy/mpost-wrapper))\r\n(provide main)\r\n(define (main)\r\n (define (couleur c) (op* (- 1.0 c) 'white))\r\n (define (degrade q p M N)\r\n (let ((a (length p))\r\n (b (length q)))\r\n (for ((i (in-range 0 (+ 1 M))))\r\n (draw (apply op.. \r\n `(,(mediation (/ i M) (point-of 0 p) (point-of 0 q))\r\n ,@(for/list ((j (in-range 0 (+ 1 N))))\r\n (mediation (/ i M )\r\n (point-of (op* a (/ j N)) p)\r\n (point-of (op* b (/ j N)) q)))))\r\n #:withcolor (couleur (/ i M))))))\r\n \r\n (let* ((u '1cm))\r\n (degrade (op.. (point (op* -0.5 u)\r\n (op* -0.5 u))\r\n (point (op* 0.5 u)\r\n (op* 0.5 u))\r\n 'cycle)\r\n (op-- (point (op* -1 u)\r\n (op* -1 u))\r\n (point (op* 1 u)\r\n (op* -1 u))\r\n (point (op* 1 u)\r\n (op* 1 u))\r\n (point (op* -1 u)\r\n (op* 1 u))\r\n 'cycle) 70 100)))\r\n \r\n ") (subsection "the result of " "ex-145") (display (string-append "generating " "ex-145" "\n")) (newline) (examples #:eval e (require "examples/ex-145.rkt") (make-figure "ex-145" main)))) (begin (begin (section "ex-146") (subsection "source code in " "ex-146" ".rkt") (codeblock "#lang racket\r\n(require (planet wcy/mpost-wrapper))\r\n(provide main)\r\n(define (main)\r\n (define (couleur c) (op* (- 1.0 c) 'white))\r\n (define (d-s-j-n c j M n p)\r\n (direction-of c \r\n (subpath-of \r\n (op/ (op* (- j 1) n) M) \r\n (op/ (op* j n) M) p)))\r\n (define (degrade q p N)\r\n (let* ((n (length p))\r\n (m (length q))\r\n (M (* 8 4);; (op* m n)\r\n ))\r\n (for ((i (in-range 0 (+ 1 N))))\r\n (draw (apply path\r\n `(,(mediation (/ i N) (point-of 0 p) (point-of 0 q))\r\n ,(dir-spec (mediation (/ i N)\r\n (direction-of 0 p)\r\n (direction-of 0 q)))\r\n ,@(flatten\r\n (for/list ((j (in-range 1 M)))\r\n `(..\r\n ,(dir-spec \r\n (mediation \r\n (/ i N)\r\n (d-s-j-n 1 j M n p)\r\n (d-s-j-n 1 j M m q)))\r\n ,(mediation (/ i N)\r\n (point-of (op/ (op* j n) M) p)\r\n (point-of (op/ (op* j m) M) q))\r\n ,(dir-spec \r\n (mediation \r\n (/ i N)\r\n (d-s-j-n 1 (+ j 1) M n p)\r\n (d-s-j-n 1 (+ j 1) M m q))))))\r\n ..\r\n ,(dir-spec \r\n (mediation (/ i N)\r\n (direction-of n p)\r\n (direction-of m q)))\r\n ,(mediation (/ i N)\r\n (point-of n p)\r\n (point-of m q))))))))\r\n (let* ((u '2cm)\r\n (p (fullcircle u))\r\n (q (op-- (point (op* -1 u)\r\n (op* -1 u))\r\n (point (op* 1 u)\r\n (op* -1 u))\r\n (point (op* 1 u)\r\n (op* 1 u))\r\n (point (op* -1 u)\r\n (op* 1 u))\r\n 'cycle)))\r\n (degrade p q 10)))\r\n\r\n \r\n ") (subsection "the result of " "ex-146") (display (string-append "generating " "ex-146" "\n")) (newline) (examples #:eval e (require "examples/ex-146.rkt") (make-figure "ex-146" main)))) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) (begin) )