Navigation alternative
Figures / Images
BBgraf
MetaPost
PSTricks
Format SVG
Asymptote
EPiX
Gnuplot
TeXGraph
Librairie GD
PostScript
SWFtools
Calculs
BC
Giac / Xcas
Maxima
Pari / GP
Scilab
Scripts p*
Documents
TeX au collège
TeX png
Lua(La)TeX
Cours etc.
Contributions
Le cours d'Ismaël
Astronomie
Bases
Base Brevet
Base Collège
Base Graphisme
Base Ipe
Base JPS (BBgraf)
Base MetaPost
Base PSTricks
Dépôt Git
Fichier JPS
Accueil
Présentation
Exemples
Papiers
Banque d'images
Albums et animations
Formulaires
Célébrités
Postscript
Chimie
Documentation
Sources et téléchargement
Édition du fichier 505.jps
Retour
%% 3 lignes de jps a eliminer pour avoir du pur postscript %% taille fenetre en jps -12 12 setxrange -2 3 setyrange 20 setxunit %% fin du jps a eliminer %% 2 definitions preliminaires : "defppathtable" et "interpolfunct" %% syntaxe : defppathtable --> array, tableau de points definis %% par le chemin courant (ds le repere postscript) /defppathtable { gsave flattenpath [ {} {} {} {} pathforall ] grestore } def %% syntaxe : x array interpolfunct --> f(x) interpole a partir du %% tableau de points array /interpolfunct { 11 dict begin /table_f exch def /x exch def %% n = le + grand indice /n table_f length 2 idiv 1 sub def /x0 table_f 0 get def /xn table_f 2 n mul get def /xi+1 0 def xn x0 gt { %% table_f trie par x croissant /y_xmin table_f 1 get def /y_xmax table_f n 2 mul 1 add get def /i 0 def /increment 1 def /xi x0 def } { %% table_f trie par x decroissant /y_xmax table_f 1 get def /y_xmin table_f n 2 mul 1 add get def /i n def /increment -1 def /xi xn def } ifelse x x0 lt x xn lt and { %% x < x0 et x < xn y_xmin %% (x0) x0 %% (xn) xn %% (x) x blim } { x xn gt x x0 gt and { %% x > x0 et x > xn y_xmax } { %% x dans [xi ; xn] ou dans [xi ; x0] { /i i increment add store i 0 lt i n gt or { %% impossible en principe (PROBLEME DANS F) boum } if /xi+1 table_f 2 i mul get store x xi+1 le { %% alors xi < x < xi+1 /yi+1 table_f 2 i mul 1 add get def /yi table_f 2 i increment sub mul 1 add get def yi+1 yi sub xi+1 xi sub div x xi sub mul yi add %% (xi) xi %% (xi+1) xi+1 %% (yi) yi %% (yi+1) yi+1 exit } { %% alors x dans [xi+1 ; xn] (ou [xi+1 ; x0]) /xi xi+1 store % (i) i } ifelse } loop } ifelse } ifelse end } def %% definition d'une fonction numerique a partir de son graphe (défini %% par un chemin) %% on utilisera ensuite cette fonction numerique pour deformer le texte newpath -200.0 9.99988 moveto -170.858 20.0947 -134.665 23.7141 -99.9998 19.9999 curveto -29.9998 12.4999 -29.9998 12.4999 39.9998 4.99994 curveto 63.2333 2.51058 81.0974 12.7908 99.9998 19.9999 curveto 128.472 30.8586 165.365 34.548 200.0 30.0 curveto defppathtable /table exch def /f {table interpolfunct} def %% juste pour visualiser le chemin 0 0 1 setrgbcolor stroke 0 setgray %% le fichier de Manuel Luque %% modifie par jpv, dim jun 18 13:18:13 CEST 2006 % (c) P. Kleiweg 1997 % adaptation plagiat M.L. 05/06/2006 %% les parametres du fichier : %% le decalage pour positionner le texte dans la page %% 297 600 translate %% le decalage (en picas) du texte par rapport a sa ligne de base /decalage_vertical 0 def %% la police et sa taille /Times-Roman findfont 40 scalefont setfont %% le texte a deformer (les x sont dans [-warphalf ; warphalf]) /warptxt (Modulation d'amplitude) def %% la procedure de base pour la transformation des points du chemin %% (x, y) --> (X, Y) %% cette fonction peut utiliser les variables warpwidth et warphalf /warp { 3 dict begin /y exch def /x exch def x y %% on multiplie y par f (x)/20 (on divise par 20 car les f(x) %% oscillent autour de 20) x f 20 div mul end } bind def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% tout ce qui suit n'a pas a etre modifie %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /warpwidth warptxt stringwidth pop def %% largeur horizontale du texte /warphalf warpwidth 2 div def %% demi-largeur horizontale %% 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 pop } bind def newpath %% on se deplace (init chemin) de facon a %% centrer la ligne de base du texte en (0 , - decalage_vertical) warphalf neg decalage_vertical neg moveto warptxt true charpath %% on cree le chemin %% maintenant on y va warpit %% on applique le pathforall stroke %% puis on encre
Tapez les 3 lettres : AWE