396.jps

396.jps [ retouréditionsource ]

Conversion au format PDF de 396.jps

%% taille fenetre en jps

-12 12 setxrange
-5 10 setyrange
20 setxunit

%% le fichier de Manuel Luque 

%% modifie par jpv, mar jun  6 14:36:22 CEST 2006

% (c) P. Kleiweg 1997

% adaptation plagiat M.L. 05/06/2006

 
/Font /Times-Roman def

%% un peu de jps a supprimer pour du pur postscript %%

#tex# déformation~: $\displaystyle {f(x, y) = (1,5 - \pm 10 e^{|1, 5x|}, 2y)}$
xmin ymax xmax ymax milieu [2.5 dup] dctexlabel
%% fin du jps %%%



/decalage_vertical 0 def       %% decalage en picas du texte en

                                %% dessous de la ligne y=0

%% la procedure de base pour la transformation des points du chemin 

%% la coordonnees en y est la pour obtenir une sinusoide sur une

%% longueur du texte (la periode) avec N oscillations

%% (x, y) --> (x, (y - decalage_vertical) * (1 + (x * periode)^2)

/warp {
3 dict begin
   /coeff_compression 100 def
   /y exch def
   /x exch coeff_compression div def
%%    %% pour visualiser les x

%%    (x) == x ==

   1.5
   2.718 1.5 x mul abs exp 10 mul
   x 0 lt {neg} if
   sub
   y 2 mul
end
} bind def
 
%% pour remplacer 'move'

/warpmove{
   %% on teste le booleen place 2 tokens plus en avant sur la pile

   %% si c'est 'true', alors on en est au 1er appel => on initialise

   %% le chemin

   2 index {
      newpath
   } if
   %% puis on applique warp a notre point

   warp  moveto
   %% on enleve le 'true' pour mettre un 'false' a la place

   pop false
} bind def
 
%% pour remplacer 'lineto

/warpline {
   warp lineto
} bind def
 
%% pour remplacer 'curveto'

/warpcurve {
   6 2 roll warp
   6 2  roll warp
   6 2 roll warp
   curveto
}  bind def

 
%% 'warpit' declenche la transformation du chemin courant

/warpit {
true
{ warpmove } {  warpline } { warpcurve } { closepath } pathforall
%{ (move) } {  (line) } { (curve) } { (closepath) } pathforall

pop
}  bind def
 

%% suppression du decalage de ML %% 297 600 translate


%% definition des differentes constantes 

% taille de des caracteres

Font findfont 40 scalefont setfont
/warptxt (Modulation d'amplitude) def  % texte a deformer

/warpwidth warptxt stringwidth pop def % largeur horizontale du texte

/warphalf warpwidth 2 div def          % demi-largeur horizontale

/N 2 def                               %  ondulation sur 3 periodes

/periode {360 warpwidth div} bind def  % une sinusoide

 
newpath
%% on cree un chemin avec une ligne horizontale y=30

warphalf neg 30 moveto  %% on se deplace (init chemin)

warphalf neg 1 warphalf { 30 lineto } for 
                        %% 1 trait horizontal (qui subira la

                        %% transformation lors du pathforall)


%% rebelote avec une ligne y=-1

warphalf neg -1 moveto   %% on se deplace (init chemin)

warphalf neg 1 warphalf { -1 lineto } for 

%% puis enfin le chemin constitue avec la chaine de cartacteres

warphalf neg 0 moveto   %% on se deplace (init chemin)

warptxt true charpath   %% on cree le chemin


%% maintenant on y va

warpit                  %% on applique le pathforall

%boum

stroke                  %% puis on encre



%% un peu de jps (a supprimer pour du pur postscript) %%

setCourierBold
(decalage = )
xmin ymin xmax ymin milieu uctext
decalage_vertical chaine cvs show