-
-% a b c d subvec == a-c b-d
-/subvec {
- 3 2 roll exch sub
- 3 1 roll
- sub exch
-} bind def
-
-
-% centre? zzwidth zzheight thickness x0 y0 x1 y1
-/draw_zigzag_line {
- newpath
- 6 dict begin
-
- 4 2 roll % zzuw zzh th x1 y1 x0 y0
- 2 copy
- moveto
- subvec % zzuw zzh th dx dy
-
- 2 copy euclidean_length /l exch def
- l div /uy exch def
- l div /ux exch def
- setlinewidth
- /zzh exch def
- l exch div round /n exch def
- n 0 gt { %if
- /zzw l n 2 mul div def
- {
- uy zzh mul 2 div ux zzh mul -2 div rmoveto
- } if
- 1 1 n {
- ux zzw mul uy zzh mul sub
- uy zzw mul ux zzh mul add
- rlineto
- ux zzw mul uy zzh mul add
- uy zzw mul ux zzh mul sub
- rlineto
- } bind for
- }{ %else
- pop
- ux l mul uy l mul rlineto
- } ifelse
- stroke
- end
-} bind def
-
-/bracket_traject
-{
- /traject_ds exch def
- /traject_alpha exch def
- traject_ds traject_alpha sin mul add
- exch
- traject_ds traject_alpha cos mul add
- exch
-} bind def
-
-
-
-/half_bracket
-{
-%6
- 0 0
-%5a
- bracket_thick arch_height add half_height arch_thick sub arch_width add
- arch_angle arch_height -0.15 mul bracket_traject
-%5b
- bracket_thick 0.5 mul half_height
- 0 arch_height 0.5 mul bracket_traject
-%5c
- 0 half_height
-%4a
- bracket_thick half_height arch_thick sub
- 0 arch_height 0.4 mul bracket_traject
-%4b
- bracket_thick arch_height add half_height arch_thick sub arch_width add
- arch_angle arch_height -0.25 mul bracket_traject
-%4c
- bracket_thick arch_height add half_height arch_thick sub arch_width add
-%3
- bracket_thick half_height arch_thick sub
-%2
- bracket_thick 0
-%1
- 0 0
-} bind def
-
-/draw_half_bracket {
- moveto
- lineto
- lineto
- curveto
- curveto
- lineto
- gsave
- fill
- grestore
-} bind def
-
-/draw_bracket % arch_angle arch_width arch_height bracket_height arch_thick bracket_thick