Source
%% taille fenetre en jps
-1 21 setxrange
-2 6 setyrange
20 setxunit

%% le fichier d'Arnaud Schmittbuhl
% Volé à Don Lancaster
/vlinemap {save /plrsnap exch def 300 mul 72 div cvi /pixelshigh exch def
300 mul 72 div cvi /pixelswide exch def 0 1 pixelswide {/slinenum exch def
save slinenum pop flush /plrsnap1 exch def gsave mapproc newpath slinenum
72 mul 300 div 0 moveto 0 pixelshigh rlineto 0 0.2 rlineto 0 pixelshigh neg
rlineto closepath clip newpath imageproc grestore clear plrsnap1 restore}
for clear plrsnap restore } def

/mapproc {0 0 translate cosrange neg degreeinc slinenum mul add cos
dup /adj exch def pixelshigh 72 mul 300 div mul dipdepth mul 2 div 0 exch
translate adj cosrange cos sub dipdepth mul 1 exch sub 1 exch scale} def

/imageproc {borderfat 2 div dup moveto 0 ptshigh borderfat sub rlineto
ptswide borderfat sub 0 rlineto 0 ptshigh neg borderfat add rlineto
closepath borderfat setlinewidth stroke 10 8 moveto stretch 0 msg ashow} def

/bannerfont {cosrange 0.48 mul ptswide div /degreeinc exch def mark 10 10
setcacheparams vlinemap} def

/NewCenturySchlbk-Bold
findfont [30 0 0 44 0 0] makefont setfont 
/degreeinc 0.5 def % contrôle la période de l'ondulation
/stretch 1 def 
/msg (Modulation d'amplitude) def 
/cosrange 60 def 
/dipdepth 0.8 def 
/ptswide 410 def % Longueur du message
/ptshigh 50 def 
/borderfat 0 def
ptswide ptshigh vlinemap 
%showpage