Bonjour,
En lisant le fil : Text Warping with Postscript, du groupe
comp.lang.postscript, je tombe sur une adresse :
_http://odur.let.rug.nl/~kleiweg/postscript/postscript.html_
(http://odur.let.rug.nl/~kleiweg/postscript/postscript.html)
qui me semble correspondre à ce que je cherche justement à faire ! Il s'agit
du fichier circle.ps
Ce que je veux obtenir : une illustration textuelle (je ne sais pas si le
mot est bien ajusté ?) de la modulation d'amplitude pour mon cours de...
l'année prochaine ! J'ai extrait la partie qui m'intéressait, un peu modifiée et
comme elle est très courte j'ai essayé de la décoder en commentant quelques
lignes.
Ce que je souhaite :
1) Je n'ai pas tout compris et il reste quelques lignes à commenter : merci
par avance...
2) En fait je voudrais que le texte soit compris entre deux sinusoïdes et
sur cet exemple seule la partie supérieure est modulée !
Donc, si vous avez un peu de temps et quelques idées... Voici le code :
%!PS
% (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
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
_______________________________________________
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/
_______________________________________________
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 07:24:19 2006
Cette archive a été créée par hypermail 2.1.8 : dim jun 18 2006 - 15:37:01 CEST