8 def draw_brace( expr height_sharp, width_sharp) =
9 save pendir, height, width, thin, thick;
11 height# := height_sharp;
12 width# := width_sharp;
14 beginchar(incr code, width#, height#/2, height#/2);
16 define_pixels (height, width);
17 thin = 2 stafflinethickness;
18 thick = .5 staff_space;
27 pendir = unitvector(x3 - x1, y3/6 - y1);
28 penangle = angle pendir - 90;
29 penpos3(thin, penangle);
30 penpos2(thick, angle(z3 -z1) -90 );
31 penpos1(2/3 thin, penangle);
34 fill z2r .. simple_serif (z3r, z3l, 90)
35 .. z2l .. simple_serif (z1l, z1r, 90) ..cycle;
37 addto currentpicture also currentpicture yscaled -1;
42 for h := 2 staffsize# step 1 pt# until (7 * staffsize#):
43 % note: define_pixels (x) multiplies x by hppp,
44 % we must never get bigger than infinity
45 draw_brace (min (h, infinity/hppp - 1), staff_space#);