Version: 5.1.1
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.
1 ex-1
1.1 source code in ex-1.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C) (values (point 0 0) (point '1cm 0) (point 0 '1cm))) (define (main) (draw (call-with-values A-B-C op--)))
1.2 the result of ex-1
Examples: | |||
|
2 ex-2
2.1 source code in ex-2.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C) (values (point 0 0) (point '1cm 0) (point 0 '1cm))) (define (main) (draw (call-with-values A-B-C (lambda (A B C) (op-- A B C 'cycle)))))
2.2 the result of ex-2
Examples: | |||
|
3 ex-3
3.1 source code in ex-3.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C-D) (values (point 0 0) (point '1cm 0) (point '1cm '1cm) (point 0 '1cm))) (define (main) (call-with-values A-B-C-D (lambda (A B C D) (draw (op-- A B C D 'cycle)) (draw (op-- A C)) (draw (op-- B D)))))
3.2 the result of ex-3
Examples: | |||
|
4 ex-4
4.1 source code in ex-4.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (draw (point 0 0) #:withpen (scale '4bp 'pencircle)))
4.2 the result of ex-4
Examples: | |||
|
5 ex-5
5.1 source code in ex-5.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C) (values (point 0 0) (point '1cm 0) (point 0 '1cm))) (define (main) (call-with-values A-B-C (lambda (A B C) (draw (op-- A B C 'cycle)) (for ((p (in-list (list A B C)))) (draw p #:withpen (scale '4bp 'pencircle))) )))
5.2 the result of ex-5
Examples: | |||
|
6 ex-6
6.1 source code in ex-6.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C-D) (values (point 0 0) (point '1cm 0) (point '1cm '1cm) (point 0 '1cm))) (define (main) (call-with-values A-B-C-D (lambda (A B C D) (draw (op-- A B C D 'cycle)) (draw (op-- A C)) (draw (op-- B D)) (for ((p (in-list (list A B C D)))) (draw p #:withpen (scale '4bp 'pencircle))))))
6.2 the result of ex-6
Examples: | |||
|
7 ex-7
7.1 source code in ex-7.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C) (values (point 0 0) (point '1cm 0) (point 0 '1cm))) (define (main) (call-with-values A-B-C (lambda (A B C) (draw (op-- A B C 'cycle)) (draw (op-- (mediation '.5 B C) A)) (draw (op-- (mediation '.5 A C) B)) (draw (op-- (mediation '.5 B A) C)) )))
7.2 the result of ex-7
Examples: | |||
|
8 ex-8
8.1 source code in ex-8.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C) (values (point 0 0) (point '1cm 0) (point 0 '1cm))) (define (main) (call-with-values A-B-C (lambda (A B C) (draw (op-- A B C 'cycle)) (draw (op-- (mediation 0.5 B C) A)) (draw (op-- (mediation 0.5 A C) B)) (draw (op-- (mediation 0.5 B A) C)) (draw (op* 1/3 (op+ A B C)) #:withpen (scale '4bp 'pencircle)) )))
8.2 the result of ex-8
Examples: | |||
|
9 ex-9
9.1 source code in ex-9.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C) (values (point 0 0) (point '1cm 0) (point 0 '1cm))) (define (main) (call-with-values A-B-C (lambda (A B C) (draw (op-- A B C 'cycle)) (draw (op-- A B) #:withpen (scale '4bp 'pencircle)) )))
9.2 the result of ex-9
Examples: | |||
|
10 ex-10
10.1 source code in ex-10.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C) (values (point 0 0) (point '1cm 0) (point 0 '1cm))) (define (main) (call-with-values A-B-C (lambda (A B C) (draw (op-- A B C 'cycle)) (draw (op-- A B) #:withcolor (op+ 'green 'red)) )))
10.2 the result of ex-10
Examples: | |||
|
11 ex-11
11.1 source code in ex-11.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C) (values (point 0 0) (point '1cm 0) (point 0 '1cm))) (define (main) (call-with-values A-B-C (lambda (A B C) (draw (op-- A B)) (draw (op-- B C) #:dashed 'evenly) (draw (op-- C A) #:dashed 'withdots) )))
11.2 the result of ex-11
Examples: | |||
|
12 ex-12
12.1 source code in ex-12.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C) (values (point 0 0) (point '1cm 0) (point 0 '1cm))) (define (main) (call-with-values A-B-C (lambda (A B C) (for ((p (in-list (list (op-- A B) (op-- B C) (op-- C A) ))) (color (in-list (list 0.8 0.6 0.4)))) (draw p #:withpen (scale '2bp 'pencircle) #:withcolor (op* color 'white))) )))
12.2 the result of ex-12
Examples: | |||
|
13 ex-13
13.1 source code in ex-13.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C-D) (values (point 0 0) (point '1cm 0) (point '1cm '1cm) (point 0 '1cm))) (define (main) (call-with-values A-B-C-D (lambda (A B C D) (draw (op-- A B C 'cycle)) (draw (op-- (mediation '.5 B C) A) #:dashed 'evenly) (draw (op-- (mediation '.5 A C) B) #:dashed 'evenly) (draw (op-- (mediation '.5 B A) C) #:dashed 'evenly) (draw (op* 1/3 (op+ A B C)) #:withpen (scale '4bp 'pencircle) #:withcolor 'red) )))
13.2 the result of ex-13
Examples: | |||
|
14 ex-14
14.1 source code in ex-14.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (draw (op-- (point 0 0) (point '3cm 0)) #:dashed (scale 2 'evenly)))
14.2 the result of ex-14
Examples: | |||
|
15 ex-15
15.1 source code in ex-15.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (draw (op-- (point 0 0) (point '3cm 0)) #:dashed (dashpattern "on 2bp off 3bp")))
15.2 the result of ex-15
Examples: | |||
|
16 ex-16
16.1 source code in ex-16.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (draw (op-- (point 0 0) (point '3cm 0)) #:dashed (dashpattern "on 1bp off 2bp on 10bp off 2bp")))
16.2 the result of ex-16
Examples: | |||
|
17 ex-17
17.1 source code in ex-17.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C) (values (point 0 0) (point '1cm 0) (point 0 '1cm))) (define (main) (call-with-values A-B-C (lambda (A B C) (drawarrow (op-- C B A)) (drawarrow (op-- A C) #:withpen (scale '2bp 'pencircle)))))
17.2 the result of ex-17
Examples: | |||
|
18 ex-18
18.1 source code in ex-18.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C) (values (point 0 0) (point '1cm 0) (point 0 '1cm))) (define (main) (call-with-values A-B-C (lambda (A B C) (drawdblarrow (op-- C B A 'cycle)) (drawdblarrow (op-- A C) #:withpen (scale '2bp 'pencircle)))))
18.2 the result of ex-18
Examples: | |||
|
19 ex-19
19.1 source code in ex-19.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (draw (op-- (point '-1.5cm 0) (point '1.5cm 0))))
19.2 the result of ex-19
Examples: | |||
|
20 ex-20
20.1 source code in ex-20.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C) (values (point 0 0) (point '1cm 0) (point 0 '1cm))) (define (main) (call-with-values A-B-C (lambda (A B C) (fill (op-- A B C 'cycle) #:withcolor (op* 0.8 'white)))))
20.2 the result of ex-20
Examples: | |||
|
21 ex-21
21.1 source code in ex-21.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C) (values (point 0 0) (point '1cm 0) (point 0 '1cm))) (define (main) (call-with-values A-B-C (lambda (A B C) (fill (op-- A B C 'cycle) #:withcolor (op* 0.8 'white)) (draw (op-- A B C 'cycle)))))
21.2 the result of ex-21
Examples: | |||
|
22 ex-22
22.1 source code in ex-22.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C) (values (point 0 0) (point '1cm 0) (point 0 '1cm))) (define (main) (call-with-values A-B-C (lambda (A B C) (fill (op-- A B C 'cycle) #:withcolor (op* 0.8 'white)) (draw (op-- A B C 'cycle) #:withpen (scale '2bp 'pencircle)))))
22.2 the result of ex-22
Examples: | |||
|
23 ex-23
23.1 source code in ex-23.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C) (values (point 0 0) (point '1cm 0) (point 0 '1cm))) (define (main) (call-with-values A-B-C (lambda (A B C) (draw (op-- A B C 'cycle) #:withpen (scale '2bp 'pencircle)) (fill (op-- A B C 'cycle) #:withcolor (op* 0.8 'white)))))
23.2 the result of ex-23
Examples: | |||
|
24 ex-24
24.1 source code in ex-24.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C-D) (values (point 0 0) (point '1cm 0) (point '1cm '1cm) (point 0 '1cm))) (define (main) (call-with-values A-B-C-D (lambda (A B C D) (fill (op-- A C B D 'cycle) #:withcolor (op* 0.8 'white)))))
24.2 the result of ex-24
Examples: | |||
|
25 ex-25
25.1 source code in ex-25.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C-D) (values (point 0 0) (point '1cm 0) (point '1cm '1cm) (point 0 '1cm))) (define (main) (call-with-values A-B-C-D (lambda (A B C D) (let ((p (op-- A C B D 'cycle))) (fill p #:withcolor (op* 0.8 'white)) (draw p)))))
25.2 the result of ex-25
Examples: | |||
|
26 ex-26
26.1 source code in ex-26.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (let ((A (point '-1.5cm '-1.5cm)) (B (point '1.5cm '-1.5cm)) (C (point '1.5cm '1.5cm)) (D (point '-1.5cm '1.5cm))) (fill (op-- A C B D 'cycle) #:withcolor (op* 0.8 'white)) (draw (op-- (point '-1.5cm 0) (point '1.5cm '0))) (draw (op-- (point 0 '-1.5cm) (point 0 '1.5cm))) (drawarrow (op-- (point 0 0) (point '1cm 0)) #:withpen (scale '2bp 'pencircle)) (drawarrow (op-- (point 0 0) (point 0 '1cm)) #:withpen (scale '2bp 'pencircle))))
26.2 the result of ex-26
Examples: | |||
|
27 ex-27
27.1 source code in ex-27.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (require (planet wcy/mpost-wrapper/label)) (provide main) (define (main) (let ((A (point 0 0))) (draw A #:withpen (scale '4bp 'pencircle)) (label-top (btex "Au dessus") A) (label-bot (btex "En dessous") A) (label-rt (btex "^^c0 droite") A) (label-lft (btex "^^c0 gauche") A)))
27.2 the result of ex-27
Examples: | |||
|
28 ex-28
28.1 source code in ex-28.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (require (planet wcy/mpost-wrapper/label)) (provide main) (define (main) (let ((A (point 0 0))) (draw A #:withpen (scale '4bp 'pencircle)) (label-ulft (btex "En haut ^^e0 gauche") A) (label-urt (btex "En haut ^^e0 droite") A) (label-llft (btex "En bas ^^e0 gauche") A) (label-lrt (btex "En bas ^^e0 droite") A)))
28.2 the result of ex-28
Examples: | |||
|
29 ex-29
29.1 source code in ex-29.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (require (planet wcy/mpost-wrapper/label)) (provide main) (define (main) (dot-label-urt (btex "$A$") (point 0 0)))
29.2 the result of ex-29
Examples: | |||
|
30 ex-30
30.1 source code in ex-30.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (require (planet wcy/mpost-wrapper/label)) (provide main) (define (A-B-C) (values (point 0 0) (point '1cm 0) (point 0 '1cm))) (define (main) (call-with-values A-B-C (lambda (A B C) (draw (op-- A B C 'cycle)) (dot-label-llft (btex "$A$") A) (dot-label-lrt (btex "$B$") B) (dot-label-top (btex "$C$") C))))
30.2 the result of ex-30
Examples: | |||
|
31 ex-31
31.1 source code in ex-31.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (require (planet wcy/mpost-wrapper/label)) (provide main) (define (A-B-C) (values (point 0 0) (point '1cm 0) (point 0 '1cm))) (define (main) (call-with-values A-B-C (lambda (A B C) (draw (op-- A B C 'cycle)) (label-bot (btex "$1$") (mediation 0.5 A B)) (label-lft (btex "$1$") (mediation 1/2 A C)) (label-urt (btex "$\\sqrt 2$") (mediation 1/2 B C)))))
31.2 the result of ex-31
Examples: | |||
|
32 ex-32
32.1 source code in ex-32.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (require (planet wcy/mpost-wrapper/label)) (provide main) (define (ex-32-points y xs) (map(lambda (x) (point x y)) xs)) (define (main) (let* ((u '1cm) (xs (list (op* -1 u) 0 u)) (u-points (ex-32-points u xs)) (l-points (ex-32-points 0 xs))) (for* ((a (in-list l-points)) (b (in-list u-points))) (draw (op-- a b))) (for ((ut (in-list (list "$a$" "$b$" "$c$"))) (a (in-list u-points)) (lt (in-list (list "$a'$" "$b'$" "$c'$"))) (b (in-list l-points))) (dot-label-top (btex ut) a) (dot-label-bot (btex lt) b))))
32.2 the result of ex-32
Examples: | |||
|
33 ex-33
33.1 source code in ex-33.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (draw (fullcircle)))
33.2 the result of ex-33
Examples: | |||
|
34 ex-34
34.1 source code in ex-34.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (draw (point 0 0 ) #:withpen (scale '4bp 'pencircle)))
34.2 the result of ex-34
Examples: | |||
|
35 ex-35
35.1 source code in ex-35.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (draw (point 0 0 ) #:withpen (scale '4bp 'pencircle)))
35.2 the result of ex-35
Examples: | |||
|
36 ex-36
36.1 source code in ex-36.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C) (values (point 0 0) (point '1cm 0) (point 0 '1cm))) (define (main) (call-with-values A-B-C (lambda (A B C) (draw (op-- A B C 'cycle)) (for ((a-point (in-list (list A B C)))) (fill (fullcircle '4bp a-point) #:withcolor 'white)) (for ((a-point (in-list (list A B C)))) (draw (fullcircle '4bp a-point))))))
36.2 the result of ex-36
Examples: | |||
|
37 ex-37
37.1 source code in ex-37.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C-D) (values (point 0 0) (point '1cm 0) (point '1cm '1cm) (point 0 '1cm))) (define (main) (call-with-values A-B-C-D (lambda (A B C D) (draw (op.. A D B C)) (for ((A (in-list (list A B C D)))) (draw A #:withpen (scale '4bp 'pencircle))))))
37.2 the result of ex-37
Examples: | |||
|
38 ex-38
38.1 source code in ex-38.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C-D) (values (point 0 0) (point '1cm 0) (point '1cm '1cm) (point 0 '1cm))) (define (main) (call-with-values A-B-C-D (lambda (A B C D) (draw (path A '-- D '.. B '.. C)) )))
38.2 the result of ex-38
Examples: | |||
|
39 ex-39
39.1 source code in ex-39.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C-D) (values (point 0 0) (point '1cm 0) (point '1cm '1cm) (point 0 '1cm))) (define (main) (call-with-values A-B-C-D (lambda (A B C D) (draw (path A '--- D '.. B '.. C)) )))
39.2 the result of ex-39
Examples: | |||
|
40 ex-40
40.1 source code in ex-40.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C-D) (values (point 0 0) (point '1cm 0) (point '1cm '1cm) (point 0 '1cm))) (define (main) (call-with-values A-B-C-D (lambda (A B C D) (draw (path A '.. D '.. B '.. C)) )))
40.2 the result of ex-40
Examples: | |||
|
41 ex-41
41.1 source code in ex-41.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C-D) (values (point 0 0) (point '1cm 0) (point '1cm '1cm) (point 0 '1cm))) (define (main) (call-with-values A-B-C-D (lambda (A B C D) (draw (op.. A B C D 'cycle) ))))
41.2 the result of ex-41
Examples: | |||
|
42 ex-42
42.1 source code in ex-42.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C-D) (values (point 0 0) (point '1cm 0) (point '1cm '1cm) (point 0 '1cm))) (define (main) (call-with-values A-B-C-D (lambda (A B C D) (draw (op.. A C 'cycle) ))))
42.2 the result of ex-42
Examples: | |||
|
43 ex-43
43.1 source code in ex-43.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (draw (path (point 0 0) (dir-spec (point 0 1)) ".." (point '2cm 0) (dir-spec (point 1 0)))))
43.2 the result of ex-43
Examples: | |||
|
44 ex-44
44.1 source code in ex-44.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (draw (path (point 0 0) (dir-spec (dir 90)) ".." (point '2cm 0) (dir-spec (dir 0)))))
44.2 the result of ex-44
Examples: | |||
|
45 ex-45
45.1 source code in ex-45.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (draw (path (point 0 0) (dir-spec 'up) ".." (point '2cm 0) (dir-spec 'right))))
45.2 the result of ex-45
Examples: | |||
|
46 ex-46
46.1 source code in ex-46.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (draw (path (point 0 0) (dir-spec 'up) ".." (point '2cm 0) (dir-spec 'up))))
46.2 the result of ex-46
Examples: | |||
|
47 ex-47
47.1 source code in ex-47.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (draw (path (point 0 0) (dir-spec 'up) ".." (point '2cm 0) (dir-spec 'up) ".." 'cycle)))
47.2 the result of ex-47
Examples: | |||
|
48 ex-48
48.1 source code in ex-48.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (arc O A B rou) (let ((alpha (op-angle (op- A O))) (beta (op-angle (op- B O)))) (path (op+ O (polar rou alpha)) (dir-spec (dir (op+ alpha 90))) ".." (op+ O (polar rou beta )) (dir-spec (dir (op+ beta 90)))))) (define (main) (let* ((O (point 0 0)) (alpha 30) (A (polar '2cm 0)) (B (polar '2cm alpha))) (draw (path O ".." A)) (draw (path O ".." B)) (draw (arc O A B '1cm))))
48.2 the result of ex-48
Examples: | |||
|
49 ex-49
49.1 source code in ex-49.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (arc O A B rou) (let ((alpha (op-angle (op- A O))) (beta (op-angle (op- B O)))) (path (op+ O (polar rou alpha)) (dir-spec (dir (op+ alpha 90))) ".." (op+ O (polar rou beta )) (dir-spec (dir (op+ beta 90)))))) (define (main) (let* ((O (point 0 0)) (alpha 30) (A (polar '2cm 0)) (B (polar '2cm alpha))) (draw (path O ".." A)) (draw (path O ".." B)) (draw (arc O A B '1cm)) (draw (arc O A B '1.1cm))))
49.2 the result of ex-49
Examples: | |||
|
50 ex-50
50.1 source code in ex-50.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (arc O A B rou) (let ((alpha (op-angle (op- A O))) (beta (op-angle (op- B O)))) (path (op+ O (polar rou alpha)) (dir-spec (dir (op+ alpha 90))) ".." (op+ O (polar rou beta )) (dir-spec (dir (op+ beta 90)))))) (define (draw-angle A B C n) (let ((rou '4.5mm)) (if (> n 0) (begin (draw (arc A B C (op+ rou (op* n '0.5mm)))) (draw-angle A B C (- n 1))) (void)))) (define (main) (let ((A (point 0 0)) (B (point '3cm 0)) (C (point '1cm '2cm))) (draw (op-- A B C 'cycle)) (draw-angle A B C 1) (draw-angle B C A 2) (draw-angle C A B 3)))
50.2 the result of ex-50
Examples: | |||
|
51 ex-51
51.1 source code in ex-51.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (let* ((u '1cm) (p (path (point u 0) (dir-spec 'up) ".." (point (op* -1 u) 0) (dir-spec 'down) "--" 'cycle))) (fill p #:withcolor (op* 0.8 'white)) (draw p #:withpen (scale '1bp 'pencircle)) ))
51.2 the result of ex-51
Examples: | |||
|
52 ex-52
52.1 source code in ex-52.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (let* ((u '1cm) (p (path (point u 0) (dir-spec 'up) ".." (point (op* -1 u) 0) (dir-spec 'down) "--" (point (op* -0.2 u) 0) (dir-spec 'up) ".." (point (op* 0.2 u) 0) (dir-spec 'down) "--" 'cycle))) (fill p #:withcolor (op* 0.8 'white)) (draw p #:withpen (scale '1bp 'pencircle)) ))
52.2 the result of ex-52
Examples: | |||
|
53 ex-53
53.1 source code in ex-53.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (let* ((u '1cm) (A (point (op* 0.2 u) (op* 0.05 u))) (AA (point (op* 0.2 u) (op* -0.05 u))) (B (point (op* 1.0 u) (op* 0.05 u))) (BB (point (op* 1.0 u) (op* -0.05 u))) (C (point (op* -0.2 u) (op* 0 0))) (D (point (op* -1.0 u) (op* 0 0))) (p (path B (dir-spec 'up) ".." D (dir-spec 'down) ".." BB (dir-spec 'up) "--" AA (dir-spec 'down) ".." C (dir-spec 'up) ".." A (dir-spec 'down) "--" 'cycle))) (fill p #:withcolor (op* 0.8 'white)) (draw p #:withpen (scale '1bp 'pencircle)) ))
53.2 the result of ex-53
Examples: | |||
|
54 ex-54
54.1 source code in ex-54.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (let* ((u '1cm) (A (point 0 0)) (B (polar u 60)) (C (polar u -60)) (D (point (op* 2 u) 0))) (for ((x (in-list (list A B C D)))) (draw x #:withpen (scale '4bp 'pencircle))) (draw (op-- A D B D C)) (for ((x (in-list (list (path A (dir-spec 'up) ".." B) (path A (dir-spec 'down) ".." C) (path A (dir-spec (dir 30)) ".." B) (path A (dir-spec (dir -30)) ".." C))))) (draw x) )))
54.2 the result of ex-54
Examples: | |||
|
55 ex-55
55.1 source code in ex-55.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (draw (op.. (point 0 0) (point '1cm '1cm) (point '2cm 0))))
55.2 the result of ex-55
Examples: | |||
|
56 ex-56
56.1 source code in ex-56.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (draw (path (point 0 0) '.. "tension 2" '.. (point '1cm '1cm) '.. (point '2cm 0))))
56.2 the result of ex-56
Examples: | |||
|
57 ex-57
57.1 source code in ex-57.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (let ((u '1cm)) (draw (path (polar u 90) (dir-spec (dir 0)) '.. (polar u -150) (dir-spec (dir 120)) '.. (polar u -30 ) (dir-spec (dir -120)) '.. 'cycle))))
57.2 the result of ex-57
Examples: | |||
|
58 ex-58
58.1 source code in ex-58.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (let ((u '1cm) (tension " tension 2 ")) (draw (path (polar u 90) (dir-spec (dir 0)) '.. tension '.. (polar u -150 ) (dir-spec (dir 120)) '.. tension '.. (polar u -30 ) (dir-spec (dir -120)) '.. tension '.. 'cycle))))
58.2 the result of ex-58
Examples: | |||
|
59 ex-59
59.1 source code in ex-59.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (let ((u '1cm) (tension " tension 4 ")) (draw (path (polar u 90) (dir-spec (dir 0)) '.. tension '.. (polar u -150 ) (dir-spec (dir 120)) '.. tension '.. (polar u -30 ) (dir-spec (dir -120)) '.. tension '.. 'cycle))))
59.2 the result of ex-59
Examples: | |||
|
60 ex-60
60.1 source code in ex-60.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (let* ((u '0.5cm) (A (point 0 0)) (B (point (op* -1 u) (op* 2 u))) (C (point (op* 4 u) (op* 3 u))) (D (point (op* 3 u) 0))) (draw (path A ".." " controls " B " and " C ".." D) #:withpen (scale '2pt 'pencircle)) (draw (op-- B C) #:dashed 'evenly) (drawarrow (op-- A B)) (drawarrow (op-- D C))))
60.2 the result of ex-60
Examples: | |||
|
61 ex-61
61.1 source code in ex-61.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (define (f z1 zn) (if (null? zn) z1 (let ((x (f2 z1 zn))) (f (car x) (cdr x))))) (define (f2 z1 zn) (if (null? (cdr zn)) (list (mediation 1/2 z1 (car zn))) (cons (mediation 1/2 z1 (car zn)) (f2 (car zn) (cdr zn))))) (let* ((u '1cm) (A (point 0 0)) (B (point (op* -1 u) (op* 2 u))) (C (point (op* 3 u) (op* 3 u))) (D (point (op* 2 u) 0))) (for ((A (in-list (list A B C D)))) (draw A #:withpen (scale '4bp 'pencircle))) (draw (path A ".." " controls " B " and " C ".." D)) (draw (f A (list B C D)) #:withpen (scale '4bp 'pencircle))))
61.2 the result of ex-61
Examples: | |||
|
62 ex-62
62.1 source code in ex-62.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (define (bezier n A B C D) (let* ((a1 A) (a2 B) (a3 C) (a4 D) (a12 (mediation 1/2 a1 a2)) (a23 (mediation 1/2 a2 a3)) (a34 (mediation 1/2 a3 a4)) (a123 (mediation 1/2 a12 a23)) (a234 (mediation 1/2 a23 a34)) (a1234(mediation 1/2 a123 a234))) (if (> n 0) (begin (bezier (- n 1) a1 a12 a123 a1234) (bezier (- n 1) a1234 a234 a34 a4)) (draw a1234 #:withpen (scale '2bp 'pencircle))))) (let* ((u '1cm) (A (point 0 0)) (B (point (op* -1 u) (op* 2 u))) (C (point (op* 3 u) (op* 3 u))) (D (point (op* 2 u) 0))) (for ((A (in-list (list A B C D)))) (draw A #:withpen (scale '4bp 'pencircle))) ;; (draw (path A ".." " controls " B " and " C ".." D)) (bezier 5 A B C D)))
62.2 the result of ex-62
Examples: | |||
|
63 ex-63
63.1 source code in ex-63.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (draw (path (point 0 0) (dir-spec 'up) '.. (point '1cm '1mm) ".." (point '2cm 0) (dir-spec 'down))))
63.2 the result of ex-63
Examples: | |||
|
64 ex-64
64.1 source code in ex-64.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (draw (path (point 0 0) (dir-spec 'up) '... (point '1cm '1mm) "..." (point '2cm 0) (dir-spec 'down))))
64.2 the result of ex-64
Examples: | |||
|
65 ex-65
65.1 source code in ex-65.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C-D) (values (point 0 0) (point '1cm 0) (point '1cm '1cm) (point 0 '1cm))) (define (main) (call-with-values A-B-C-D (lambda (A B C D) (draw (path A " {curl 0} " ".." D ".." B ".." C )))))
65.2 the result of ex-65
Examples: | |||
|
66 ex-66
66.1 source code in ex-66.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C-D) (values (point 0 0) (point '1cm 0) (point '1cm '1cm) (point 0 '1cm))) (define (main) (call-with-values A-B-C-D (lambda (A B C D) (draw (path A " {curl 1} " ".." D ".." B ".." C )))))
66.2 the result of ex-66
Examples: | |||
|
67 ex-67
67.1 source code in ex-67.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (A-B-C-D) (values (point 0 0) (point '1cm 0) (point '1cm '1cm) (point 0 '1cm))) (define (main) (call-with-values A-B-C-D (lambda (A B C D) (draw (path A " {curl 2} " ".." D ".." B ".." C )))))
67.2 the result of ex-67
Examples: | |||
|
68 ex-68
68.1 source code in ex-68.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (let ((A (unknown-point)) (B (unknown-point)) (C (unknown-point)) (D (unknown-point))) (eqn= (xpart A) (ypart A) (ypart B) (xpart C) 0) (eqn= (xpart B) (ypart C) (xpart D) (ypart D) '2cm) (draw (op-- A B C D 'cycle) #:withpen (scale '2bp 'pencircle))))
68.2 the result of ex-68
Examples: | |||
|
69 ex-69
69.1 source code in ex-69.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (let* ((A (point 0 0)) (B (point '2cm '3cm)) (C (point '1cm 0)) (D (point '-1cm '2cm)) (M (unknown-point)) (lambda1 (unknown-numeric)) (mu (unknown-numeric))) (eqn= M (mediation lambda1 A B) (mediation mu C D)) (draw (op-- A B)) (draw (op-- C D)) (draw M #:withpen (scale '4bp 'pencircle))))
69.2 the result of ex-69
Examples: | |||
|
70 ex-70
70.1 source code in ex-70.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (let* ((A (point 0 0)) (B (point '2cm '3cm)) (C (point '1cm 0)) (D (point '-1cm '2cm)) (M (unknown-point))) (eqn= M (mediation (whatever) A B) (mediation (whatever) C D)) (draw (op-- A B)) (draw (op-- C D)) (draw M #:withpen (scale '4bp 'pencircle))))
70.2 the result of ex-70
Examples: | |||
|
71 ex-71
71.1 source code in ex-71.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (let* ((A (point 0 0)) (B (point '3cm 0)) (C (point '1cm '2cm)) (AA (mediation 0.5 B C)) (BB (mediation 0.5 A C)) (CC (mediation 0.5 A B)) (G (unknown-point))) (eqn= G (mediation (whatever) A AA) (mediation (whatever) B BB)) (draw (op-- A B C 'cycle)) (for ((a (list A B C)) (b (list AA BB CC))) (draw (op-- a b) #:dashed 'withdots)) (draw G #:withpen (scale '4bp 'pencircle))))
71.2 the result of ex-71
Examples: | |||
|
72 ex-72
72.1 source code in ex-72.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (let ((p (fullcircle '5mm)) (x (point '1mm '2mm))) (for ((n (in-range 5))) (draw (shift (op* n x) p )))))
72.2 the result of ex-72
Examples: | |||
|
73 ex-73
73.1 source code in ex-73.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (let ((p (path (point '5mm '-5mm) (dir-spec 'right) '.. (point '2cm 0)))) (for ((n (in-range 10))) (draw (rotate (* 10 n) p)))))
73.2 the result of ex-73
Examples: | |||
|
74 ex-74
74.1 source code in ex-74.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (let ((p (fullcircle '5mm)) (x (point '1mm '2mm))) (for ((n (in-range 1 5))) (draw (xscale n p)))))
74.2 the result of ex-74
Examples: | |||
|
75 ex-75
75.1 source code in ex-75.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (let* ((A (point '1cm 0)) (B (rotate 72 A)) (C (rotate 72 B)) (D (rotate 72 C)) (E (rotate 72 D))) (draw (op-- A B C D E 'cycle))))
75.2 the result of ex-75
Examples: | |||
|
76 ex-76
76.1 source code in ex-76.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (let* ((A (point '1cm 0)) (B (rotate 72 A)) (C (rotate 72 B)) (D (rotate 72 C)) (E (rotate 72 D))) (draw (op-- A C E B D 'cycle))))
76.2 the result of ex-76
Examples: | |||
|
77 ex-77
77.1 source code in ex-77.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (let* ((A (point '1cm 0)) (B (rotate 72 A)) (C (rotate 72 B)) (D (rotate 72 C)) (E (rotate 72 D)) (AA (unknown-point)) (BB (unknown-point)) (CC (unknown-point)) (DD (unknown-point)) (EE (unknown-point))) (eqn= AA (mediation (whatever) A C)) (eqn= AA (mediation (whatever) B D)) (eqn= BB (mediation (whatever) B D)) (eqn= BB (mediation (whatever) C E)) (eqn= CC (mediation (whatever) C E)) (eqn= CC (mediation (whatever) D A)) (eqn= DD (mediation (whatever) D A)) (eqn= DD (mediation (whatever) E B)) (eqn= EE (mediation (whatever) E B)) (eqn= EE (mediation (whatever) A C)) (fill (op-- A C E B D 'cycle) #:withcolor (op* 0.8 'white)) (fill (op-- AA BB CC DD EE 'cycle) #:withcolor 'white) (draw (op-- A C E B D 'cycle))))
77.2 the result of ex-77
Examples: | |||
|
78 ex-78
78.1 source code in ex-78.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (let ((p (path (op-- (point 0 0) (point '1cm 0))))) (drawarrow p #:withpen (scale '2bp 'pencircle)) (drawarrow (zscale (point 1 2) p))))
78.2 the result of ex-78
Examples: | |||
|
79 ex-79
79.1 source code in ex-79.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (let* ((u '1cm) (p (path (op-- (point 0 0) (point u 0)))) (A (point u (op* -1 u))) (alpha 90)) (drawarrow p #:withpen (scale '1bp 'pencircle)) (drawarrow ((rotate-around A alpha) p)) (drawarrow (shift A (rotate alpha (shift (op* -1 A) p))) #:withpen (scale '1bp 'pencircle) #:dashed 'withdots)))
79.2 the result of ex-79
Examples: | |||
|
80 ex-80
80.1 source code in ex-80.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (require (planet wcy/mpost-wrapper/label)) (provide main) (define (main) (let* ((p (path (point 0 0) '-- (point '1cm 0))) (A (point '1cm '-1cm)) (alpha 90)) (drawarrow p #:withpen (scale '1bp 'pencircle)) (draw A #:withpen (scale '4bp 'pencircle)) (label-ulft (btex "$A$") A) (draw (point 0 0) #:withpen (scale '4bp 'pencircle)) (label-bot (btex "$O$") (point 0 0)) (let loop ((i 0)) (if (< i 10) (begin (drawarrow (shift (op* -1 (op/ (op* i A) 10)) p) #:withcolor 'red) (drawarrow (rotate (op/ (op* i alpha) 10) (shift (op* -1 A) p)) #:withcolor 'green) (drawarrow (shift (op/ (op* i A) 10) (rotate alpha (shift (op* -1 A) p))) #:withcolor 'blue) (loop (+ 1 i))) (void)))))
80.2 the result of ex-80
Examples: | |||
|
81 ex-81
81.1 source code in ex-81.rkt
#lang racket (require (planet wcy/mpost-wrapper)) (provide main) (define (main) (define (f AA A B C) (eqn= (op- AA A) (rotate 90 (op* (unknown-numeric) (op- B C)))) (eqn= AA (mediation (whatever) B C))) (let* ((A (point 0 0))