Dans un e-mail daté du 05/06/2006 09:35:40 Paris, Madrid (heure d'été),
aschmittbuhl@libertysurf.fr a écrit :
>un exemple avec modulation haute et basse (un peu dissymétrique,
>semble-t-il). Inutile de dire que je n'y comprends pas grand chose...
C'est bien symétrique, il suffit d'écrire tout le texte en majuscules (par
ex.).
Simplement, la longueur du texte peut-être facilement obtenue :
%/ptswide 410 def % Longueur du message
/ptswide msg stringwidth pop def % Longueur du message
/ptswide ptswide 40 add def % Longueur du message tenant compte de
l'épaisseur ?
Je remplace 300 par ptswide partout.
Deuxième remarque : Don Lancaster fait un travail de pixellisation, ça doit
être dans les quelques lignes :
newpath
slinenum
72 mul ptswide div 0 moveto
0 pixelshigh rlineto
0 0.2 rlineto
0 pixelshigh neg rlineto
closepath
clip
Ce qui imprime une lenteur certaine à l'affichage ! Comment fait-il ? Je
voudrais bien le comprendre...
La méthode de P. Kleiweg est plus rapide, le code plus concis (plus clair ?
Jean-Paul : nous attendons tes lumières !). En attendant voici le code proposé
par Arnaud modifié :
%!PS
% Volé à Don Lancaster
% modifications 2 : 10h35 05/06/2006
/vlinemap {
save /plrsnap exch def
% 300 mul 72 div cvi
ptswide mul 72 div cvi
/pixelshigh exch def
% 300 mul 72 div cvi
ptswide mul 72 div cvi
/pixelswide exch def
0 1 pixelswide { % for
/slinenum exch def
save
slinenum == flush
/plrsnap1 exch def
gsave
mapproc
newpath
slinenum
% 72 mul 300 div 0 moveto
72 mul ptswide 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 { %
50 200 translate cosrange neg degreeinc slinenum mul add cos dup
/adj exch def pixelshigh 72 mul ptswide 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.25 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
/ptswide msg stringwidth pop def % Longueur du message
/ptswide ptswide 40 add def % Longueur du message tenant compte de
l'épaisseur ?
/ptshigh 50 def
/borderfat 2 def
ptswide ptshigh vlinemap showpage
Manuel
_______________________________________________
Liste de diffusion Syracuse
Syracuse@melusine.eu.org
http://melusine.eu.org/cgi-bin/mailman/listinfo/syracuse
Adresses alternatives du site :
http://syracuse.eu.org/syracuse/
http://193.55.139.7/syracuse/
Received on Mon Jun 5 10:52:52 2006
Cette archive a été créée par hypermail 2.1.8 : lun jun 05 2006 - 13:37:01 CEST