X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=ps%2Fmusic-drawing-routines.ps;h=e0f28e82a6a21e9b9918409a81bd5c0c255858af;hb=c49a146628e5f8422c72deb40a42899c4c5cdd33;hp=cb9c6020b39f7b5a6f4f01e93c6481e7041618a4;hpb=e58f03944cce661e4732af3e63aeb60edae97846;p=lilypond.git diff --git a/ps/music-drawing-routines.ps b/ps/music-drawing-routines.ps index cb9c6020b3..e0f28e82a6 100644 --- a/ps/music-drawing-routines.ps +++ b/ps/music-drawing-routines.ps @@ -118,18 +118,26 @@ bind def fill } bind def -/draw_round_box % x y width height blot +/vector_add { % x1 y1 x2 y2 vector_add x1+x2 y1+y2 + exch + 4 1 roll + add + 3 1 roll + add + exch +} bind def + +/draw_round_box % width height x y blot { - setlinewidth + setlinewidth % w h x y 0 setlinecap 1 setlinejoin - currentdict /testing known { - %% outline only, for testing: - }{ - 4 copy - rectfill - } ifelse + rmoveto % w h + currentpoint % w h x1 y1 + 4 2 roll % x1 y1 w h + 4 copy + rectfill rectstroke } bind def @@ -141,8 +149,12 @@ bind def 1 setlinejoin 3 1 roll - moveto % x(0) y(0) - { lineto } repeat % n times + /polygon_x + currentpoint + /polygon_y exch def + def + rmoveto % x(0) y(0) + { polygon_x polygon_y vector_add lineto } repeat % n times closepath { %fill? stroke_and_fill @@ -151,13 +163,12 @@ bind def } ifelse } bind def -/draw_repeat_slash % x-width width height +/draw_repeat_slash % x-width width height draw_repeat_slash { 2 index % duplicate x-width 1 setlinecap 1 setlinejoin - 0 0 moveto 0 rlineto % x-width 0 rlineto % width height neg 0 rlineto % -x-width 0 @@ -167,6 +178,8 @@ bind def % this is for drawing slurs. /draw_bezier_sandwich % thickness controls { + gsave + currentpoint translate % round ending and round beginning 1 setlinejoin 1 setlinecap setlinewidth @@ -176,19 +189,23 @@ bind def curveto closepath stroke_and_fill + grestore } bind def -/draw_dot % x1 y2 R +/draw_dot % radius x y draw_dot { -% 0 360 arc fill stroke + rmoveto + currentpoint + 3 2 roll 0 360 arc closepath stroke_and_fill } bind def -/draw_circle % F R T +/draw_circle % filled? radius thickness draw_circle { - setlinewidth - dup 0 moveto - 0 exch 0 exch + setlinewidth % f? r + currentpoint % f? r x0 y0 + 3 2 roll % f? x0 y0 r + dup 0 rmoveto 0 360 arc closepath { stroke_and_fill } { stroke } @@ -196,60 +213,49 @@ bind def } bind def -% JUNKME. use color & circle. -/draw_white_dot % x1 y2 R +/draw_line % dx dy x1 y1 thickness draw_line { -% 0 360 arc fill stroke - 0 360 arc closepath % fill stroke -gsave - 1 setgray fill -grestore -% 0 360 arc closepath % fill stroke - 0.05 setlinewidth 0 setgray stroke -} bind def - - -% JUNKME: Use color. -/draw_white_text % text scale font -{ - exch selectfont - 1 setgray - 0 0 moveto - %-0.05 -0.05 moveto - % text - show + setlinewidth % dx dy x1 y1 + 1 setlinecap + 1 setlinejoin + rmoveto % dx dy + rlineto + stroke } bind def - -/draw_dashed_line % dash thickness dx dy +/draw_dashed_line % dx dy thickness dashpattern draw_dashed_line { 1 setlinecap 1 setlinejoin - setdash - setlinewidth - 0 0 moveto - lineto + setdash % dx dy thickness + setlinewidth %dx dy + rlineto stroke + [] 0 setdash % reset dash pattern } bind def -/draw_dashed_slur % dash thickness controls +/draw_dashed_slur % controls thickness dash { +gsave + currentpoint translate 1 setlinecap 1 setlinejoin setdash setlinewidth - 8 -2 roll + 8 2 roll moveto curveto stroke +grestore } bind def -/print_glyphs { +/print_glyphs % dx dy glyph print_glyphs +{ { - currentpoint - 3 2 roll - glyphshow - moveto + currentpoint %dx dy glyph x0 y0 + 3 2 roll %dx dy x0 y0 glyph + glyphshow % dx dy x0 y0 + moveto % dx dy rmoveto }repeat }bind def