c6fe94204b185d778160849e69d2a070c318df81
[pst-anamorphosis.git] / doc / pst-anamorphosis-doc-part2.tex
1 \documentclass[12pt]{article}
2 \usepackage[T1]{fontenc}
3 \usepackage[ansinew]{inputenc}
4 \usepackage[french]{babel}
5 \usepackage{pst-anamorphosis-add}
6 \usepackage{amsmath,amssymb}
7 \usepackage[a4paper]{geometry}
8 \usepackage{url}
9 \title{Liste des macros et des options de `\textsf{pst-anamorphosis}'}
10 \author{Jürgen Gilg, Manuel Luque, Jean-Michel Sarlat}
11 \date{16 octobre 2011}
12 \begin{document}
13 \maketitle
14 \begin{abstract}
15 Le package `\textsf{pst-anamorphosis}' est composé, actuellement, de \mbox{deux~parties~:}
16 \begin{itemize}
17 \item \textsf{`pst-anamorphosis}' qui permet d'afficher l'anamorphose d'un fichier au format .eps ;
18 \item \textsf{`pst-anamorphosis-add}' qui est son complément et qui adapte certaines macros de \textsf{PStricks} comme \verb+\psline+ et d'autres détaillées par la suite, au tracé d'anamorphoses personnelles dessinées avec ces commandes. De plus, cette partie permet l'affichage de texte anamorphosé et de dessins au format \textsf{.pst} c'est-à-dire composé de commandes \textsf{PStricks}.
19 \end{itemize}
20 Ce package permet de calculer et dessiner les images anamorphiques planes obtenues par les anamorphoses suivantes :
21 \begin{enumerate}
22 \item cylindrique ;
23 \item conique ;
24 \item sphérique ;
25 \item perspective ;
26 \item perspective inversée.
27 \end{enumerate}
28 \end{abstract}
29 \section{\textbackslash{}psanamorphosis}
30 \verb+\psanamorphosis[options](x,y){fichier.eps}+ dessine l'image et l'image anamorphique au point de coordonnées $(x,y)$. Si les coordonnées ne sont pas précisées l'origine est $(0,0)$.
31
32 Les \textbf{options}, avec leurs valeurs par défaut :
33 \begin{itemize}
34 \item Le type d'anamorphose \textsf{[type=cylindrical] }, voici les autres :
35 %
36 \begin{itemize}
37 \item \textsf{conical}
38 \item \textsf{spherical}
39 \item \textsf{perspective}
40 \item \textsf{inverseperspective}
41 \end{itemize}
42 %
43 \item le rayon du cylindre, de la sphère et de la base du cône : \textsf{Rmirror=3} ;
44 \item la hauteur du cône, la cote du sommet : \textsf{Zs=5}
45 \item l'abscisse de l'observateur (du point de vue, d'où la lettre \textsf{v}) : \textsf{Xv=0} ;
46 \item l'ordonnée de l'observateur : \textsf{Yv=-10} ;
47 \item la cote de l'observateur : \textsf{Zv=10} ;
48 \item L'ordonnée du point de fuite principal $F$ : \textsf{F=10} ;
49 \item la distance de $F$ à $F'$ : \textsf{D=4} ;
50 \item l'unité du quadrillage ou plutôt le demi-côté du carré : \textsf{ua=2}.
51 \item un booléen \textsf{[drawanamorphosis=true]} qui dessine l'image anamorphique et qui positionné à \textsf{[false]} permet de faire des essais de dimensions et de cadrage par rapport au \textit{cercle} de base du miroir ;
52 \item un facteur d'échelle \textsf{[scale=1 1]} suivant $x$ et $y$ pour adapter les dimensions de l'image au miroir~;
53 \end{itemize}
54 \section{pst-anamorphosis-add}
55 \subsection{Les macros \textbackslash{}pscircleA, \textbackslash{}pscurveA, \textbackslash{}psccurveA, \textbackslash{}psbezierA, \mbox{\textbackslash{}pnodeA} et \textbackslash{}movetoA}
56 Ces commandes sont calquées sur celles de PStricks, elles ont donc les mêmes options, elles s'adaptent automatiquement au type d'anamorphose choisi.
57 \subsection{Un texte}
58 \verb+\pstextA[options](x,y){texte}+ permet de placer le texte centré au point de coordonnées~$(x,y)$.
59
60 Les options de texte :
61 \begin{itemize}
62 \item le type de fonte \textsf{[PSfont=Times-Roman]} ;
63 \item la taille en pts \textsf{[fontsize=40]} ;
64 \item un facteur d'échelle \textsf{[scale=1 1]}, comme pour les images.
65 \end{itemize}
66 \subsection{Un fichier .pst}
67 Une commande spécifique permet le calcul et l'affichage des fichiers au format \textbf{.pst} : \mbox{\textbf{\textbackslash{}AFP\{fichier.pst\}}.} Cette image peut être mise à une échelle différente ou déplacée si le type d'anamorphose choisie le nécessite, comme dans l'exemple suivant :
68 \begin{verbatim}
69 \psset{Rmirror=3,scale=-0.5 -0.5,translate=0 1.5,type=conical}
70 \AFP{tiger.pst}
71 \end{verbatim}
72 \section{Exemples}
73 \subsection{Anamorphose cylindrique}
74 L'anamorphose cylindrique est celle qui est tracée par défaut si aucun type n'est spécifié. Comme options, elle ne nécessite que le rayon du cylindre, l'abscisse et l'ordonnée du point de vue, comme nous l'avons vu dans la partie théorique la cote du point de vue n'intervient pas. Comme tous les autres types d'anamorphoses, le dessin pourra être mis à l'échelle, si nécessaire, avec l'option \textsf{[scale=sx sy]}.
75 \begin{center}
76 \begin{pspicture}[showgrid](-8,-4)(8,10)
77 \pscircle[doubleline=true]{3}
78 \psset{Yv=100,linestyle=dotted}
79 \psanamorphosis[scale=1 -1]{mickey.eps}
80 \multido{\n=-2.00+0.50}{9}{%
81 \pnode(! \n\space -2.00){A}
82 \pnode(! \n\space 2.00){B}
83 \psline(A)(B)
84 \pslineA(A)(B)
85 }
86 \multido{\N=-2.00+0.50}{9}{%
87 \pnode(!-2.0 \N){A}
88 \pnode(!2.0 \N){B}
89 \pslineA(A)(B)
90 \psline(A)(B)
91 }
92 \pstextA[fontsize=25,scale=1.5 -1,fillcolor=black](0,-3){Mickey}
93 \end{pspicture}
94 \end{center}
95 \begin{verbatim}
96 \begin{pspicture}[showgrid](-8,-4)(8,10)
97 \pscircle[doubleline=true]{3}
98 \psset{Yv=100,linestyle=dotted}
99 \psanamorphosis[scale=1 -1]{mickey.eps}
100 \multido{\n=-2.00+0.50}{9}{%
101 \pnode(! \n\space -2.00){A}
102 \pnode(! \n\space 2.00){B}
103 \psline(A)(B)
104 \pslineA(A)(B)
105 }
106 \multido{\N=-2.00+0.50}{9}{%
107 \pnode(!-2.0 \N){A}
108 \pnode(!2.0 \N){B}
109 \pslineA(A)(B)
110 \psline(A)(B)
111 }
112 \pstextA[fontsize=25,scale=1.5 -1,fillcolor=black](0,-3){Mickey}
113 \end{pspicture}
114 \end{verbatim}
115 \subsection{Anamorphose conique}
116 Comme options, l'anamorphose conique ne nécessite que le rayon de la base du cône \textsf{Rmirror=3}, la hauteur du cône et la cote \textsf{Zv=10} du point de vue.
117 \begin{center}
118 \begin{pspicture}[showgrid](-6,-6)(6,6)
119 \pscircle[doubleline=true]{3}
120 \psset{type=conical}
121 \psanamorphosis[scale=0.25 0.25](0,-1.5){parrot.eps}
122 \psanamorphosis[scale=-0.25 -0.25](0,1.5){parrot.eps}
123 \psset{linestyle=dotted}
124 \multido{\n=-1.50+0.50}{7}{%
125 \pnode(! \n\space -2.50){A}
126 \pnode(! \n\space -0.50){B}
127 \psline(A)(B)
128 \pslineA(A)(B)
129 }
130 \multido{\N=-2.50+0.50}{5}{%
131 \pnode(!-1.50 \N){A}
132 \pnode(!1.50 \N){B}
133 \pslineA(A)(B)
134 \psline[linecolor=green](A)(B)
135 }
136 \multido{\n=-1.50+0.50}{7}{%
137 \pnode(! \n\space 2.50){A}
138 \pnode(! \n\space 0.50){B}
139 \psline(A)(B)
140 \pslineA(A)(B)
141 }
142 \multido{\N=2.50+-0.50}{5}{%
143 \pnode(!-1.50 \N){A}
144 \pnode(!1.50 \N){B}
145 \pslineA(A)(B)
146 \psline(A)(B)
147 }
148 \pstextA[fontsize=10,fillcolor=green,scale=1.5 1](0,-0.75){Le perroquet}
149 \pstextA[fontsize=10,fillcolor=green,scale=1.5 -1](0,0.75){Le perroquet}
150 \end{pspicture}
151 \end{center}
152 \begin{verbatim}
153 \begin{pspicture}[showgrid](-6,-6)(6,6)
154 \pscircle[doubleline=true]{3}
155 \psset{type=conical}
156 \psanamorphosis[scale=0.25 0.25](0,-1.5){parrot.eps}
157 \psanamorphosis[scale=-0.25 -0.25](0,1.5){parrot.eps}
158 \psset{linestyle=dotted}
159 \multido{\n=-1.50+0.50}{7}{%
160 \pnode(! \n\space -2.50){A}
161 \pnode(! \n\space -0.50){B}
162 \psline(A)(B)
163 \pslineA(A)(B)
164 }
165 \multido{\N=-2.50+0.50}{5}{%
166 \pnode(!-1.50 \N){A}
167 \pnode(!1.50 \N){B}
168 \pslineA(A)(B)
169 \psline[linecolor=green](A)(B)
170 }
171 \multido{\n=-1.50+0.50}{7}{%
172 \pnode(! \n\space 2.50){A}
173 \pnode(! \n\space 0.50){B}
174 \psline(A)(B)
175 \pslineA(A)(B)
176 }
177 \multido{\N=2.50+-0.50}{5}{%
178 \pnode(!-1.50 \N){A}
179 \pnode(!1.50 \N){B}
180 \pslineA(A)(B)
181 \psline(A)(B)
182 }
183 \pstextA[fontsize=10,fillcolor=green,scale=1.5 1](0,-0.75){Le perroquet}
184 \pstextA[fontsize=10,fillcolor=green,scale=1.5 -1](0,0.75){Le perroquet}
185 \end{pspicture}
186 \end{verbatim}
187 \subsection{Anamorphose hémisphérique}
188 L'anamorphose sphérique possède comme options le rayon du la sphère et les 3 coordonnées du point de vue. C'est la plus délicate à mettre au point pour que tous les rayons réfléchis par le miroir parviennent à l'\oe{}il.
189 \begin{center}
190 \psscalebox{0.75}{
191 \begin{pspicture}[showgrid](-7,-19)(7,5)
192 \pscircle[doubleline=true]{5}
193 \psset{type=spherical,Rmirror=5}
194 \psanamorphosis[scale=0.4 0.4](0,-4){tiger.eps}
195 {\psset{linewidth=0.5\pslinewidth}
196 \multido{\n=-1.00+0.20}{11}{%
197 \pnode(! \n\space -4.80){A}
198 \pnode(! \n\space -3.20){B}
199 \psline(A)(B)
200 \pslineA(A)(B)
201 }%
202 \multido{\N=-4.80+0.20}{9}{%
203 \pnode(!-1.0 \N){A}
204 \pnode(!1.0 \N){B}
205 \pslineA(A)(B)
206 \psline(A)(B)
207 }%
208 }
209 \psbezier[linecolor=red,showpoints=true](-2,-4)(-1,-3.2)(1,-4)(2,-3)
210 \psbezierA[showpoints=true,linecolor=red](-2,-4)(-1,-3.2)(1,-4)(2,-3)
211 \end{pspicture}
212 }
213 \end{center}
214 \begin{verbatim}
215 \begin{pspicture}[showgrid](-7,-19)(7,5)
216 \pscircle[doubleline=true]{5}
217 \psset{type=spherical,Rmirror=5}
218 \psanamorphosis[scale=0.4 0.4](0,-4){tiger.eps}
219 {\psset{linewidth=0.5\pslinewidth}
220 \multido{\n=-1.00+0.20}{11}{%
221 \pnode(! \n\space -4.80){A}
222 \pnode(! \n\space -3.20){B}
223 \psline(A)(B)
224 \pslineA(A)(B)
225 }%
226 \multido{\N=-4.80+0.20}{9}{%
227 \pnode(!-1.0 \N){A}
228 \pnode(!1.0 \N){B}
229 \pslineA(A)(B)
230 \psline(A)(B)
231 }%
232 }
233 \psbezier[linecolor=red,showpoints=true](-2,-4)(-1,-3.2)(1,-4)(2,-3)
234 \psbezierA[showpoints=true,linecolor=red](-2,-4)(-1,-3.2)(1,-4)(2,-3)
235 \end{pspicture}
236 \end{verbatim}
237 \subsection{Anamorphose oblique ou perspective}
238 Les options sont particulières :
239 \begin{itemize}
240 \item L'ordonnée du point de fuite principal $F$ : \textsf{F=10} ;
241 \item la distance de $F$ à $F'$ : \textsf{D=4}
242 \item l'unité du quadrillage ou plutôt le demi-côté du carré : \textsf{ua=2}.
243 \item Un booléen \textsf{perpsective=true} qui représente l'objet traité en perspective et qui positionné à \textsf{false} donne la représentation inversée c'est-à-dire l'anamorphose oblique.
244 \end{itemize}
245 \begin{center}
246 \begin{pspicture}(-4,-3)(4,12)
247 \psgrid[subgriddiv=0,gridcolor=lightgray,griddots=10,gridlabels=4pt](-3,-3)(3,3)
248 \psset{ua=3,F=12,D=2}
249 \psanamorphosis[type=perspective,scale=0.75 0.75](0,0){parrot.eps}
250 \psset{type=perspective}
251 \multido{\i=-3+1}{7}{%
252 \pnode(! \i\space -3){A}
253 \pnode(! \i\space 3){B}
254 \psline(A)(B)
255 \pslineA[linecolor=red](A)(B)
256 }%
257 \multido{\i=-3+1}{7}{%
258 \pnode(!-3 \i){A}
259 \pnode(!3 \i){B}
260 \pslineA[linecolor=blue](A)(B)
261 \psline(A)(B)
262 }%
263 \pstextA[fontsize=35,fillcolor=green](-2.5,2){P}
264 \pstextA[fontsize=35,fillcolor=green](-2.5,1){A}
265 \pstextA[fontsize=35,fillcolor=green](-2.5,0){R}
266 \pstextA[fontsize=35,fillcolor=green](-2.5,-1){R}
267 \pstextA[fontsize=35,fillcolor=green](-2.5,-2){O}
268 \pstextA[fontsize=35,fillcolor=green](-2.5,-3){T}
269 \end{pspicture}
270 \end{center}
271 \begin{verbatim}
272 \begin{pspicture}(-4,-3)(4,12)
273 \psgrid[subgriddiv=0,gridcolor=lightgray,griddots=10,gridlabels=4pt](-3,-3)(3,3)
274 \psset{ua=3,F=12,D=2}
275 \psanamorphosis[type=perspective,scale=0.75 0.75](0,0){parrot.eps}
276 \psset{type=perspective}
277 \multido{\i=-3+1}{7}{%
278 \pnode(! \i\space -3){A}
279 \pnode(! \i\space 3){B}
280 \psline(A)(B)
281 \pslineA[linecolor=red](A)(B)
282 }%
283 \multido{\i=-3+1}{7}{%
284 \pnode(!-3 \i){A}
285 \pnode(!3 \i){B}
286 \pslineA[linecolor=blue](A)(B)
287 \psline(A)(B)
288 }%
289 \pstextA[fontsize=35,fillcolor=green](-2.5,2){P}
290 \pstextA[fontsize=35,fillcolor=green](-2.5,1){A}
291 \pstextA[fontsize=35,fillcolor=green](-2.5,0){R}
292 \pstextA[fontsize=35,fillcolor=green](-2.5,-1){R}
293 \pstextA[fontsize=35,fillcolor=green](-2.5,-2){O}
294 \pstextA[fontsize=35,fillcolor=green](-2.5,-3){T}
295 \end{pspicture}
296 \end{center}
297 \end{verbatim}
298
299 \subsection{Perspective inversée}
300 Ceci est extrait de la page 59 du Baltru\9aaïtis :
301
302 << L'arrangement peut fonctionner dans les deux sens. Si le carré en perspective se présente comme un trapèze, le trapèze y apparaît comme un carré.
303 Un renversement du point de vue ramené au dessus du point principal (à une hauteur égale à l'éloignement de la distance) et installé en quelque sorte dans le tableau, aboutit à un effet contraire. Les mêmes rétrécissements corrigent les formes et les rapprochent au lieu de les éloigner et de les altérer, comme dans un film à l'envers. La perspective est à rebours.
304 >>
305 \begin{center}
306 \psscalebox{2}{
307 \begin{pspicture}(-3,-8)(3,3)
308 \psgrid[subgriddiv=0,gridcolor=lightgray,griddots=10,gridlabels=6pt](-3,-3)(3,-6)
309 \psset{ua=3,F=14,D=3,type=inverseperspective,linewidth=0.5\pslinewidth}
310 \multido{\i=-3+1}{7}{%
311 \pnode(! \i\space -3){A}
312 \pnode(! \i\space 3){B}
313 \psline(A)(B)
314 \pslineA(A)(B)
315 }%
316 \multido{\i=-3+1}{7}{%
317 \pnode(!-3 \i){A}
318 \pnode(!3 \i){B}
319 \pslineA(A)(B)
320 \psline(A)(B)
321 }%
322 \psanamorphosis{tiger.eps}
323 \psset{fillcolor={[cmyk]{0.2 0.55 0.85 0.0}},linecolor={[cmyk]{0.2 0.55 0.85 0.0}},fontsize=40,scale=1.32 1}
324 \pstextA(0,2){TIGRE*}
325 \pstextA(-2.48,1){I}
326 \pstextA(-2.48,0){G}
327 \pstextA(-2.48,-1){R}
328 \pstextA(-2.48,-2){E}
329 \pstextA(-2.48,-3){*}
330 \end{pspicture}
331 }
332 \end{center}
333 \begin{verbatim}
334 \begin{pspicture}(-3,-4)(3,3)
335 \psgrid[subgriddiv=0,gridcolor=lightgray,griddots=10,gridlabels=6pt](-3,-3)(3,-6)
336 \psset{ua=3,F=14,D=3,type=inverseperspective,linewidth=0.5\pslinewidth}
337 \multido{\i=-3+1}{7}{%
338 \pnode(! \i\space -3){A}
339 \pnode(! \i\space 3){B}
340 \psline(A)(B)
341 \pslineA(A)(B)
342 }%
343 \multido{\i=-3+1}{7}{%
344 \pnode(!-3 \i){A}
345 \pnode(!3 \i){B}
346 \pslineA(A)(B)
347 \psline(A)(B)
348 }%
349 \psanamorphosis{tiger.eps}
350 \psset{fillcolor={[cmyk]{0.2 0.55 0.85 0.0}},linecolor={[cmyk]{0.2 0.55 0.85 0.0}},fontsize=40,scale=1.32 1}
351 \pstextA(0,2){TIGRE!}
352 \pstextA(-2.48,1){I}
353 \pstextA(-2.48,0){G}
354 \pstextA(-2.48,-1){R}
355 \pstextA(-2.48,-2){E}
356 \pstextA(-2.48,-3){!}
357 \end{pspicture}
358 \end{verbatim}
359 \section{Les fichiers pst}
360 \begin{center}
361 \begin{pspicture}[showgrid](-5,-6)(5,3)
362 \rput(0,-1.3333){%
363 \psscalebox{0.6667}{%
364 \begin{pspicture}(-6,-8)(6,4)
365 \psset{Xv=0,Yv=-100}
366 \pscircle[doubleline=true,linecolor=black]{3}
367 \input{luckyluke.pst}
368 \AFP{luckyluke.pst}
369 \psset{linewidth=0.5\pslinewidth}
370 \multido{\n=-2.00+0.50}{9}{%
371 \pnode(! \n\space -2.00){A}
372 \pnode(! \n\space 2.00){B}
373 \psline(A)(B)
374 \pslineA(A)(B)
375 }
376 \multido{\N=-2.00+0.50}{9}{%
377 \pnode(!-2.0 \N){A}
378 \pnode(!2.0 \N){B}
379 \pslineA(A)(B)
380 \psline(A)(B)
381 }
382 \end{pspicture}
383 }}
384 \end{pspicture}
385 \end{center}
386 \begin{verbatim}
387 \begin{pspicture}(-6,-8)(6,4)
388 \psset{Xv=0,Yv=-100}
389 \pscircle[doubleline=true,linecolor=black]{3}
390 \input{luckyluke.pst}
391 \AFP{luckyluke.pst}
392 \psset{linewidth=0.5\pslinewidth}
393 \multido{\n=-2.00+0.50}{9}{%
394 \pnode(! \n\space -2.00){A}
395 \pnode(! \n\space 2.00){B}
396 \psline(A)(B)
397 \pslineA(A)(B)
398 }
399 \multido{\N=-2.00+0.50}{9}{%
400 \pnode(!-2.0 \N){A}
401 \pnode(!2.0 \N){B}
402 \pslineA(A)(B)
403 \psline(A)(B)
404 }
405 \end{pspicture}
406 \end{verbatim}
407 Les fichiers \textsf{pst} sont des fichiers de commandes PStricks obtenues par conversion d'un fichier \textsf{.eps} au moyen d'un script écrit par Jean-Michel Sarlat.
408
409 L'anamorphose d'une telle image est obtenue à l'aide d'une seule commande \verb+\AFP{luckyluke.pst}+. De tels fichiers pourront donc être obtenues au moyen du script ou bien directement sur le serveur de \textsf{syracuse} (adresse à préciser).
410
411 En fonction de la complexité du fichier (du nombre de lignes de commandes qu'il contient) il sera nécessaire d'allouer un supplément de mémoire à \TeX. Par exemple, sous Windows, à partir de MikTeX 2.8, Alexander Grahn donne la procédure à suivre dans la documentation de son package : `\textsf{The animate}'
412 \begin{verbatim}
413 1. Open a DOS command prompt window (execute \91cmd.exe\92 via \91Start\92! \91Run\92).
414 2. At the DOS prompt, enter
415 initexmf --edit-config-file=latex
416 3. Type
417 main_memory=10000000
418 into the editor window that opens, save the file and quit the editor.
419 4. To rebuild the format, enter
420 initexmf --dump=latex
421 5. Repeat steps 2\964 with config
422
423 initexmf --edit-config-file=pdflatex
424 main_memory=10000000
425 initexmf --dump=pdflatex
426
427 initexmf --edit-config-file=xelatex
428 main_memory=10000000
429 initexmf --dump=xelatex
430 \end{verbatim}
431 \section{Normalisation d'une image au format eps}
432 Il est souvent nécessaire de ``préparer'' l'image à anamorphoser. Voici le détail de la procédure suivie à partir d'une image de Donald Duck capturée sur un site de coloriage.
433
434 \url{http://www.waouo.com/wp-content/uploads/2011/06/coloriagedonaldduck.jpg}
435
436 \begin{enumerate}
437 \item Transformer l'image au format \textsf{bmp} avec \textsf{The Gimp}(par exemple).
438 \item Vectoriser l'image avec \textsf{Potrace}, en ligne de commande : \textsf{potrace donald.bmp donald2.eps}
439 \item Avec \textsf{pstoedit} convertir au format vectoriel ps simplifié avec courbes. On peut opérer en ligne de commande : \textsf{pstoedit -f ps donald2.eps donald1.eps} ou bien avec \textsf{GSview} dans le menu Edition, cliquer sur \textsf{Conversion vers un format vectoriel} et choisir \textsf{ps : Simplified Postscript with curves}, on enregistre sous le nom \textsf{donald1.eps}.
440 \item Avec votre éditeur de texte rechercher à la fin du fichier la ligne qui donne les dimensions de la boîte : \verb+%%BoundingBox: 4 7 453 640+ .
441 \item La hauteur de l'image eps est 640-7 =633\,pts, c'est la plus grande dimension. Supposons que votre image finale doive posséder une longueur de 4\,cm dans sa plus grande dimension. Sachant que 1\,cm vaut 28.45274 pts, il faut donc lui appliquer un facteur d'échelle égal à $\dfrac{4\times28.45274}{633}$.
442 \item Ensuite il faut déplacer cette image pour que le centre de celle-ci soit à l'origine $(0,0)$, il faut donc appliquer la translation $-\dfrac{453+4}{2},-\dfrac{640+7}{2}$, ce qui convertit en postscript se traduira par l'ajout de ces deux lignes dans le fichier \textsf{donald1.eps}, au début du fichier juste après la ligne : \verb+%%Page: 1 1+
443 \begin{verbatim}
444 4 28.45274 mul 633 div dup scale
445 4 453 add 2 div neg 640 7 add 2 div neg translate
446 \end{verbatim}
447 On enregistre ce fichier.
448 \item \textsf{pstoedit} intervient à nouveau, avec les mêmes options, et on enregistre le fichier final sous le nom : \textsf{donald.eps}.
449 \end{enumerate}
450 \begin{center}
451 \begin{pspicture}[showgrid](-8,-4)(8,10)
452 \pscircle[doubleline=true]{3}
453 \psset{Yv=100,linestyle=dotted}
454 \psanamorphosis[scale=1 -1](0,0){donald.eps}
455 \multido{\n=-2.00+0.50}{9}{%
456 \pnode(! \n\space -2.00){A}
457 \pnode(! \n\space 2.00){B}
458 \psline(A)(B)
459 \pslineA(A)(B)
460 }
461 \multido{\N=-2.00+0.50}{9}{%
462 \pnode(!-2.0 \N){A}
463 \pnode(!2.0 \N){B}
464 \pslineA(A)(B)
465 \psline(A)(B)
466 }
467 \pstextA[fontsize=25,scale=1.5 -1,fillcolor=black](0,-2.5){Donald}
468 \end{pspicture}
469 \end{center}
470 \begin{verbatim}
471 \begin{pspicture}[showgrid](-8,-4)(8,10)
472 \pscircle[doubleline=true]{3}
473 \psset{Yv=100,linestyle=dotted}
474 \psanamorphosis[scale=1 -1](0,0){donald.eps}
475 \multido{\n=-2.00+0.50}{9}{%
476 \pnode(! \n\space -2.00){A}
477 \pnode(! \n\space 2.00){B}
478 \psline(A)(B)
479 \pslineA(A)(B)
480 }
481 \multido{\N=-2.00+0.50}{9}{%
482 \pnode(!-2.0 \N){A}
483 \pnode(!2.0 \N){B}
484 \pslineA(A)(B)
485 \psline(A)(B)
486 }
487 \pstextA[fontsize=25,scale=1.5 -1,fillcolor=black](0,-2.5){Donald}
488 \end{pspicture}
489 \end{verbatim}
490 \end{document}

Licence Creative Commons Les fichiers de Syracuse sont mis à disposition (sauf mention contraire) selon les termes de la
Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.