summaryrefslogtreecommitdiff
path: root/info/drawing-with-metapost/src/trad-braces.mp
blob: 595248ceba12936417fa14290f8fcecebe401c4e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
\documentclass[border=5mm]{standalone}
\usepackage{luamplib}
\begin{document}
\mplibtextextlabel{enable}
\begin{mplibcode}
vardef do_brace(expr a, b, offset, r) =
  save d, e, m, n, brace, hook; pair e; path brace, hook[];
  d = angle(b-a);
  e = up scaled offset rotated d shifted r[a,b];
  n = 1/2 offset; m = abs(n); 
  hook1 =                         origin {0, n} .. (m, n) {1,0};
  hook2 = (-m,-n) {1,0} .. {0, n} origin {0,-n} .. (m,-n) {1,0};
  hook3 = (-m, n) {1,0} .. {0,-n} origin;
  brace = (hook1 rotated d shifted a --
           hook2 rotated d shifted e --
           hook3 rotated d shifted b) shifted (up scaled n rotated d);
  draw brace withpen pencircle yscaled .6 xscaled .1666 rotated d;
  point 3 of brace
enddef;

beginfig(1);
z1 = origin;
z2 = 180 right rotated 13;
draw z1--z2 withcolor .7 white;
dotlabel.llft("$z_1$",z1);
dotlabel.urt("$z_2$",z2);
drawoptions(withcolor 2/3 red);
label.lrt("Here", do_brace(z1, z2, -12, 3/4)); 
drawoptions();
begingroup; interim ahangle := 180; interim ahlength := 3;
drawdblarrow (z1--z2) shifted (12 up rotated angle (z2-z1)) withcolor 2/3 blue;
endgroup;


endfig;
\end{mplibcode}
\end{document}