Source
%% taille fenetre en jps
-10 10 setxrange
-2 5 setyrange
20 setxunit


%% le fichier de Manuel Luque
% (c) P. Kleiweg 1997
% adaptation plagiat M.L. 05/06/2006
 
%/Font /Utopia-Regular def
/Font /Times-Roman def
 
/warp { % x y 1 index => x y x
1 index % position  horizontale du point courant X
periode N mul  mul
cos 2 add
mul     % hauteur finale Y
} bind def
 
/warpmove{
2 index { % détecte la position éventuelle  d'un caractère ???
newpath
} if
warp  moveto
pop false
} bind def
 
/warpline {
warp lineto
} bind def
 
/warpcurve {
6 2 roll warp
6 2  roll warp
6 2 roll warp
curveto
}  bind def
 
/warpit {
true
{ warpmove } {  warpline } { warpcurve } { closepath } pathforall
pop
}  bind def
 

%% suppression du decalage de ML %% 297 600 translate
 
% taille de des caractères
Font findfont 40 scalefont setfont
 
/warptxt (Modulation d'amplitude) def % texte à déformer
/warpwidth  warptxt stringwidth pop def % largeur horizontale du texte
/warphalf  warpwidth 2 div def % demi-largeur horizontale
 
/periode {360 warpwidth div} bind def % une sinusoïde
/N 3 def %  ondulation sur 3 périodes
 
warphalf neg 30 moveto
warphalf neg 1 warphalf { 30 lineto } for % les 2  sinusoïdes
warphalf -1 warphalf neg { 32 lineto } for
closepath
 
warphalf neg 0 moveto
warptxt true charpath
 
warpit
gsave
.6 1 1  setrgbcolor
fill
grestore
stroke
 
%showpage