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 test_texte3d_Z_01.jps
Retour
%% Pour passer en pur postscript, decommenter la ligne suivante %% 294 420 translate %% puis commenter les 3 suivantes -15 30 setxrange -10 20 setyrange 20 setxunit %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Manuel Luque %% %% juin 2006 %% %% poour le dessin de l'icosaedre et du ballon %% %% c'est une adaptation du fichier MatLab de Jean-Bernard ROUX :%% %% http://hypo.ge-dip.etat-ge.ch/www/math/html/node45.html %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /cm {28.45 mul} def %% définir le point de vue %% par ses coordonnées sphériques /THETA -30 def /PHI 20 def /Dobs 60 def % distance observateur /Decran 30 def % distance de l'écran %% calcul des coefficients de la matrice %% de transformation /Sin1 {THETA sin} bind def /Sin2 {PHI sin} bind def /Cos1 {THETA cos} bind def /Cos2 {PHI cos} bind def /Cos1Sin2 {Cos1 Sin2 mul} bind def /Sin1Sin2 {Sin1 Sin2 mul} bind def /Cos1Cos2 {Cos1 Cos2 mul} bind def /Sin1Cos2 {Sin1 Cos2 mul} bind def %% %% pour la 3D conventionnelle %% Dony : graphisme scientifique : page 187 /formulesTroisD{% /xObservateur Xabscisse Sin1 mul neg Yordonnee Cos1 mul add def /yObservateur Xabscisse Cos1Sin2 mul neg Yordonnee Sin1Sin2 mul sub Zcote Cos2 mul add def /zObservateur Xabscisse neg Cos1Cos2 mul Yordonnee Sin1Cos2 mul sub Zcote Sin2 mul sub Dobs add def /Xi Decran xObservateur mul zObservateur div def /Yi Decran yObservateur mul zObservateur div def } def /XpointVue {Dobs Cos1Cos2 mul} bind def /YpointVue {Dobs Sin1Cos2 mul} bind def /ZpointVue {Dobs Sin2 mul} bind def %% dessin de l'icosaedre tronqué 1 setlinejoin %% le quadrillage /Zcote 0 def -20 1 20 { % /Xabscisse exch def /Yordonnee -10 def formulesTroisD Xi cm Yi cm moveto -10 1 10 { /Yordonnee exch def formulesTroisD Xi cm Yi cm lineto } for stroke }for % -10 1 10 { % /Xabscisse -20 def /Yordonnee exch def /Zcote 0 def formulesTroisD Xi cm Yi cm moveto -20 1 20 { /Xabscisse exch def formulesTroisD Xi cm Yi cm lineto } for stroke }for %% les axes gsave 0 0 moveto /Zcote 0 def /Yordonnee 0 def /Xabscisse 20 def formulesTroisD Xi cm Yi cm lineto 2 setlinewidth 1 0 0 setrgbcolor stroke 0 0 moveto /Zcote 0 def /Yordonnee 10 def /Xabscisse 0 def formulesTroisD Xi cm Yi cm lineto 2 setlinewidth 0 1 0 setrgbcolor stroke 0 0 moveto /Zcote 15 def /Yordonnee 0 def /Xabscisse 0 def formulesTroisD Xi cm Yi cm lineto 2 setlinewidth 0 0 1 setrgbcolor stroke grestore /decalage_vertical 0 def %% decalage en picas du texte en %% dessous de la ligne y=0 /Font /Times-Roman def Font findfont 3 scalefont setfont %% le texte a deformer (les x sont dans [-warphalf ; warphalf]) /warptxt (La perspective) def %% Jean-Paul Vignault %% 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 /Zcote exch def /Yordonnee exch def formulesTroisD Xi cm Yi cm % passage aux cm sur l'écran end } bind def /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 0 5 10 { % le plan vertical X=0, 5, 10 /Zcote 0 def /Yordonnee -10 def /Xabscisse exch def formulesTroisD Xi cm Yi cm moveto /Yordonnee -10 def /Zcote 10 def formulesTroisD Xi cm Yi cm lineto /Yordonnee 10 def /Zcote 10 def formulesTroisD Xi cm Yi cm lineto /Yordonnee 10 def /Zcote 0 def formulesTroisD Xi cm Yi cm lineto closepath stroke /Yordonnee 0 def /Zcote 0 def formulesTroisD Xi cm Yi cm moveto warptxt true charpath %% on cree le chemin %% maintenant on y va warpit %% on applique le pathforall gsave 1 setgray fill grestore stroke %% puis on encre } for %% showpage
Tapez les 3 lettres : AWE