Initialisation du projet pst-solides3d.git (SVN revision 142)
[pst-solides3d.git] / doc / .svn / text-base / par-projectiontexte.tex.svn-base
1 \section {Texte}
2
3 L'objet \Cadre{\texttt{texte}} de la macro \verb+\psProjection+  permet
4 de projeter des chaînes de caractères sur des plans quelconques.
5
6 \subsection {Les paramètres et les options}
7
8 Il y a $3$ paramètres : \Cadre{\texttt{[text]}} qui définit la chaîne à afficher,
9 \Cadre{\texttt{[fontsize]}}, qui donne la taille de la fonte en
10 points (rappelons qu'une taille de 28,45~pts correspond à 1~cm), et
11 enfin \Cadre{\texttt{[pos]}}, qui définit la position
12 du texte par rapport au point visé. Par défaut le texte est centré sur
13 l'origine du plan.
14
15 Ce dernier paramètre nécessite un peu d'explications. Considérons la
16 chaîne de caractères \texttt{petit texte} représentée ci-dessous.
17 \begin{center}
18 \begin{pspicture}(-5,-2)(5,2)
19 \rput(0,0){\psframebox[linestyle=none,fillstyle=solid,
20    fillcolor=yellow!50,framesep=0pt]{\phantom{\timesnormal petit texte}}}
21 \rput(0,0){\rnode[lb]{A}{\rnode[rb]{B}{\rnode[rt]{C}{%
22     \rnode[lt]{D}{\rnode[l]{E}{\rnode[r]{F}{%
23     \rnode[t]{G}{\rnode[b]{H}{\timesnormal petit texte}}}}}}}}}
24 %\psset{nodesep=5pt}
25 \ncline{A}{B}\ncline{B}{C}\ncline{C}{D}\ncline{D}{A}
26 \pnode({A}){A'}
27 \pnode({B}){B'}
28 \pnode({C}){C'}
29 \pnode({D}){D'}
30 \pnode({E}){E'}
31 \pnode({F}){F'}
32 \pnode({G}){G'}
33 \pnode({H}){H'}
34 \rput(A){\pnode(0,\baselineskip){B1}}
35 \rput(B){\pnode(0,\baselineskip){B2}}
36 \psdots(A')(B')(C')(D')(E')(F')(G')(H')(B1)(B2)(0,0)
37 \psline(B1)(B2)
38 \pnode(! \GetCenter{A} A.x 0.5 sub A.y 0.5 sub){A1}
39 \ncline{->}{A}{A1}
40 \uput[dl](A1){\texttt{dl}}
41 \pnode(! \GetCenter{B1} B1.x 0.5 sub B1.y){B1l}
42 \ncline{->}{B1}{B1l}
43 \uput[l](B1l){\texttt{bl}}
44 \pnode(! \GetCenter{E} E.x 0.5 sub E.y){El}
45 \ncline{->}{E}{El}
46 \uput[l](El){\texttt{cl}}
47 \pnode(! \GetCenter{D} D.x 0.5 sub D.y 0.5 add){Dl}
48 \ncline{->}{D}{Dl}
49 \uput[ul](Dl){\texttt{ul}}
50 \pnode(! \GetCenter{G} G.x G.y 0.5 add){Gu}
51 \ncline{->}{G}{Gu}
52 \uput[u](Gu){\texttt{uc}}
53 \pnode(! \GetCenter{H} H.x H.y 0.5 sub){Hd}
54 \ncline{->}{H}{Hd}
55 \uput[d](Hd){\texttt{dc}}
56 \pnode(! \GetCenter{C} C.x 0.5 add C.y 0.5 add){Cr}
57 \ncline{->}{C}{Cr}
58 \uput[ur](Cr){\texttt{ur}}
59 \pnode(! \GetCenter{B} B.x 0.5 add B.y 0.5 sub){Br}
60 \ncline{->}{B}{Br}
61 \uput[dr](Br){\texttt{dr}}
62 \pnode(! \GetCenter{B2} B2.x 0.5 add B2.y){B2r}
63 \ncline{->}{B2}{B2r}
64 \uput[r](B2r){\texttt{br}}
65 \pnode(! \GetCenter{F} F.x 0.5 add F.y){Fr}
66 \ncline{->}{F}{Fr}
67 \uput[r](Fr){\texttt{cr}}
68 \end{pspicture}
69 \end{center}
70
71 Nous avons $4$~lignes horizontales de références~: la ligne
72 inférieure \verb+(d)own+, la ligne de base \verb+(b)aseline+, la
73 ligne médiane, ou ligne centrale \verb+(c)enter+, et la ligne
74 supérieure \verb+(u)p+.
75
76 Il y a également $4$~lignes de référence sur l'axe vertical~: la ligne
77 de gauche \verb+(l)eft+, la ligne de base \verb+(b)aseline+, la ligne
78 centrale \verb+(c)enter+ et la ligne de droite \verb+(r)ight+. Dans le
79 cas d'une chaîne de caractère, les $2$ lignes verticales \verb+l+ et
80 \verb+b+ sont confondues.
81
82 L'intersection de ces $4$ lignes horizontales avec ces $4$ lignes
83 verticales nous donne $16$~points appelés
84 \verb+dl+,
85 \verb+bl+,
86 \verb+cl+,
87 \verb+ul+,
88 \verb+db+,
89 \verb+bb+,
90 \verb+cb+,
91 \verb+ub+,
92 \verb+dc+,
93 \verb+bc+,
94 \verb+cc+,
95 \verb+uc+,
96 \verb+dr+,
97 \verb+br+,
98 \verb+cr+,
99 \verb+ur+.
100
101 Parmi ceux-ci, $4$~sont considérés comme \textsl {points
102 intérieurs\/}~: \verb+bb+, \verb+bc+, \verb+cb+ et \verb+cc+.
103
104 Lorsque le paramètre \verb+[pos]+ de \verb+\psProjection+ est affecté à
105 l'un de ces $4$~points, cela signifie que ce dernier doit être
106 positionné au point d'origine du plan de projection.
107
108 Lorsque le paramètre \verb+[pos]+ de \verb+\psProjection+ est affecté à
109 l'un des $12$~points restant, cela indique une direction dans laquelle
110 doit être positionné le texte par rapport au point d'origine du plan
111 de projection.
112
113 Par exemple, \verb+\psProjection[...,pos=uc](0,0)+ indique que le
114 texte doit être centré par rapport au point $(0,0)$ et affiché
115 au-dessus.
116
117 %% Le plan doit être défini par son origine
118 %% \Cadre{$\mathtt{(x_0ny_0,z_0)}$} et la normale
119 %% \Cadre{\texttt{[normal=1 0 0 90]}}. Pour les particularités
120 %% de la définition de la normale, car il y a trois façons de le faire !
121 %% Tous les détails sont dans la partie \Cadre{\texttt{``Choisir un plan
122 %%     par son origine et une normale''}} de la documentation de
123 %% \texttt{doc-psProjection}.
124
125 %% La taille de la fonte doit être fixée en points avec l'option
126 %% . .
127
128
129 \subsection {Exemples de projetés sur un plan quelconque}
130
131 \subsubsection {Exemple 1 : projection sur Oxy, avec l'option \texttt{pos=bc}}
132
133 \begin{LTXexample}[width=8cm]
134 \begin{pspicture}(-4,-1.5)(4,1.5)
135 \psset{solidmemory}
136 \psset{lightsrc=10 0 10,
137    viewpoint=50 -90 90 rtp2xyz,Decran=50}
138 \psSolid[object=plan,definition=normalpoint,plangrid,
139    base=-4 4 -1 1,args={0 0 0 [0 0 1 90]},name=monplan,]
140 \psProjection[object=texte,
141    fontsize=20,linecolor=red,
142    pos=bc,plan=monplan,
143    text=j'aimerais tant voir Syracuse,
144 ](0,0)%
145 \axesIIID(0,0,0)(4,2,1)
146 \composeSolid
147 \end{pspicture}
148 \end{LTXexample}
149
150 \subsubsection{Exemple 2 : projection Oxy, texte centré}
151
152 \begin{LTXexample}[width=8cm]
153 \begin{pspicture}(-4,-1.5)(4,1.5)
154 \psset{solidmemory}
155 \psset{lightsrc=10 0 10,
156    viewpoint=50 -90 90 rtp2xyz,Decran=50}
157 \psSolid[object=plan,definition=normalpoint,plangrid,
158    base=-4 4 -1 1,args={0 0 0 [0 0 1 90]},name=monplan,]
159 \psProjection[object=texte,
160    fontsize=20,linecolor=red,
161    text= L'île de Pâques et Kairouan,
162    plan=monplan]%
163 \axesIIID(0,0,0)(4,2,1)
164 \end{pspicture}
165 \end{LTXexample}
166
167
168
169 \subsubsection {Exemple 3 : projection Oxy,  avec différentes options \texttt{pos=dl, etc.}}
170
171 \begin{center}
172 \psset{unit=.8}
173 \begin{pspicture}(-4,-1.5)(4,1.5)
174 \psset{solidmemory}
175 \psset{lightsrc=10 0 10,viewpoint=50 -90 90 rtp2xyz,Decran=50}
176 \psSolid[object=plan,definition=normalpoint,plangrid,
177    base=-10 10 -1 1,args={0 0 0 [0 0 1 90]},name=monplan,]
178 \psProjection[object=texte,
179    fontsize=20,linecolor=red,
180    text=Et les grands oiseaux qui s'amusent,
181    pos=dl,
182    plan=monplan]%
183 \axesIIID(0,0,0)(8,1,1)
184 \rput(0,-1.5){\Cadre{\texttt{[pos=dl]}}}
185 \end{pspicture}
186 \end{center}
187
188 \begin{center}
189 \psset{unit=.8}
190 \begin{pspicture}(-4,-1.5)(4,1.5)
191 \psset{solidmemory}
192 \psset{lightsrc=10 0 10,viewpoint=50 -90 90 rtp2xyz,Decran=50}
193 \psSolid[object=plan,definition=normalpoint,plangrid,
194    base=-10 10 -1 1,args={0 0 0 [0 0 1 90]},name=monplan,]
195 \psProjection[object=texte,
196    fontsize=20,linecolor=red,
197    text= A glisser l'aile sous le vent.,
198    pos=dr,
199    plan=monplan]%
200 \axesIIID(0,0,0)(8,1,1)
201 \rput(0,-1.5){\Cadre{\texttt{[pos=dr]}}}
202 \end{pspicture}
203 \end{center}
204
205 \begin{center}
206 \psset{unit=.8}
207 \begin{pspicture}(-4,-1.5)(4,1.5)
208 \psset{solidmemory}
209 \psset{lightsrc=10 0 10,viewpoint=50 -90 90 rtp2xyz,Decran=50}
210 \psSolid[object=plan,definition=normalpoint,plangrid,
211    base=-10 10 -1 1,args={0 0 0 [0 0 1 90]},name=monplan,]
212 \psProjection[object=texte,
213    fontsize=20,linecolor=red,
214    text=Avant que ma jeunesse s'use,
215    pos=ur,
216    plan=monplan]%
217 \axesIIID(0,0,0)(8,1,1)
218 \rput(0,-1.5){\Cadre{\texttt{[pos=ur]}}}
219 \end{pspicture}
220 \end{center}
221
222 \begin{center}
223 \psset{unit=.8}
224 \begin{pspicture}(-4,-1.5)(4,1.5)
225 \psset{solidmemory}
226 \psset{lightsrc=10 0 10,viewpoint=50 -90 90 rtp2xyz,Decran=50}
227 \psSolid[object=plan,definition=normalpoint,plangrid,
228    base=-10 10 -1 1,args={0 0 0 [0 0 1 90]},name=monplan,]
229 \psProjection[object=texte,
230    fontsize=20,linecolor=red,
231    text=Et que mes printemps soient partis,
232    pos=ul,
233    plan=monplan]%
234 \axesIIID(0,0,0)(8,1,1)
235 \rput(0,-1.5){\Cadre{\texttt{[pos=ul]}}}
236 \end{pspicture}
237 \end{center}
238
239 \begin{center}
240 \psset{unit=.8}
241 \begin{pspicture}(-4,-1.5)(4,1.5)
242 \psset{solidmemory}
243 \psset{lightsrc=10 0 10,viewpoint=50 -90 90 rtp2xyz,Decran=50}
244 \psSolid[object=plan,definition=normalpoint,plangrid,
245    base=-10 10 -1 1,args={0 0 0 [0 0 1 90]},name=monplan,]
246 \psProjection[object=texte,
247    fontsize=20,linecolor=red,
248    text=J'aimerais tant voir Syracuse,
249    pos=uc,
250    plan=monplan]%
251 \axesIIID(0,0,0)(8,1,1)
252 \rput(0,-1.5){\Cadre{\texttt{[pos=uc]}}}
253 \end{pspicture}
254 \end{center}
255
256 \begin{center}
257 \psset{unit=.8}
258 \begin{pspicture}(-4,-1.5)(4,1.5)
259 \psset{solidmemory}
260 \psset{lightsrc=10 0 10,viewpoint=50 -90 90 rtp2xyz,Decran=50}
261 \psSolid[object=plan,definition=normalpoint,plangrid,
262    base=-10 10 -1 1,args={0 0 0 [0 0 1 90]},name=monplan,]
263 \psProjection[object=texte,
264    fontsize=20,linecolor=red,
265    text=Pour m'en souvenir à Paris.,
266    pos=dc,
267    plan=monplan]%
268 \axesIIID(0,0,0)(8,1,1)
269 \rput(0,-1.5){\Cadre{\texttt{[pos=dc]}}}
270 \end{pspicture}
271 \end{center}
272
273 \subsubsection {Exemple 4 : projection Oxy avec rotation du texte}
274
275 \begin{LTXexample}[width=8cm]
276 \begin{pspicture}(-4,-3)(4,3)
277 \psset{solidmemory}
278 \psset{lightsrc=10 0 10,
279    viewpoint=50 -90 90 rtp2xyz,Decran=50}
280 \psSolid[object=plan,definition=normalpoint,plangrid,
281    base=-4 4 -3 3,args={0 0 0 [0 0 1 90]},name=monplan,]
282 \psset{plan=monplan}
283 \psProjection[object=texte,
284    fontsize=28.45,linecolor=gray!50,
285    text=Tournez manèges]%
286 \psProjection[object=texte,
287    fontsize=28.45,linecolor=red,
288    text=Tournez manèges,
289    phi=60]%
290 \axesIIID(0,0,0)(4,3,1)
291 \end{pspicture}
292 \end{LTXexample}
293 La rotation du texte s'introduit avec le paramètre \Cadre{\texttt{phi=60}}.
294
295 \subsubsection{Exemple 5 : positionnement du texte en un point quelconque}
296
297 \begin{LTXexample}[width=8cm]
298 \begin{pspicture}(-4,-3)(4,3)
299 \psset{solidmemory}
300 \psset{viewpoint=50 -90 90 rtp2xyz,
301    Decran=50}
302 \psSolid[object=plan,definition=normalpoint,plangrid,
303    base=-4 4 -3 3,args={0 0 0 [0 0 1 90]},name=monplan,]
304 \psset{fontsize=28.45,plan=monplan}
305 \psProjection[object=texte,
306    linecolor=green,
307    text=ici](-2,-2)
308 \psProjection[object=texte,
309    linecolor=red,
310    text=ou]%
311 \psProjection[object=texte,
312    linecolor=blue,
313    text=là](2,2)
314 \psPoint(0,0,0){O}
315 \psPoint(-2,-2,0){O1}
316 \psPoint(2,2,0){O2}
317 \psdots[dotsize=0.2](O)(O1)(O2)
318 \axesIIID(0,0,0)(4,4,1)
319 \end{pspicture}
320 \end{LTXexample}
321
322 \subsection{Exemples de projections sur une face d'un solide}
323
324 \subsubsection {Méthode}
325
326 Le solide doit être mémorisé avec l'option générale
327 \Cadre{$\backslash$psset$\{$solidmemory$\}$}. La première chose à faire est de
328 repérer les numéros des faces du solide
329 avec l'option \Cadre{\texttt{[numfaces=all]}}.
330 \begin{LTXexample}[width=8cm]
331 \psset{viewpoint=50 20 30 rtp2xyz,Decran=100}
332 \begin{pspicture}(-4,-4)(4,4)
333 \psframe(-4,-4)(4,4)
334 \psSolid[object=cube,a=2,action=draw,
335    linecolor=red,numfaces=all]%
336 \axesIIID(1,1,1)(2,2,2)
337 \end{pspicture}
338 \end{LTXexample}
339
340 Puis on définit le plan de projection par la face choisie, ici on affiche
341 \Cadre{\texttt{A}} sur la face de numéro $0$~:
342 \begin{gbar}
343 \begin{verbatim}
344 \psSolid[object=plan,definition=solidface,args=A 0,name=P0]
345 \psProjection[object=texte,linecolor=red,text=A,plan=P0]%
346 \end{verbatim}
347 \end{gbar}
348
349 \begin{LTXexample}[width=8cm]
350 \psset{viewpoint=50 20 30 rtp2xyz,Decran=50}
351 \begin{pspicture}(-3,-4)(4,5)
352 \psset{unit=0.5}
353 \psset{solidmemory}
354 \psSolid[object=cube,a=8,action=draw,name=A,linecolor=red]%
355 \psset{fontsize=100}
356 \psSolid[object=plan,action=none,
357    definition=solidface,args=A 0,name=P0]
358 \psProjection[object=texte,linecolor=red,text=A,plan=P0]%
359 \psSolid[object=plan,action=none,
360    definition=solidface,args=A 1,name=P1]
361 \psProjection[object=texte,linecolor=red,text=B,plan=P1]%
362 \psSolid[object=plan,action=none,
363    definition=solidface,args=A 4,name=P4]
364 \psProjection[object=texte,linecolor=red,text=E,plan=P4]%
365 \axesIIID(4,4,4)(6,6,6)
366 \end{pspicture}
367 \end{LTXexample}
368
369 \subsubsection {Rotation du texte avec l'option \texttt{phi}}
370
371 \begin{LTXexample}[width=8cm]
372 \psset{viewpoint=50 20 30 rtp2xyz,Decran=50}
373 \psset{unit=0.5}
374 \begin{pspicture}(-3,-4)(4,5)
375 \psset{solidmemory}
376 \psSolid[object=cube,a=8,action=draw,linecolor=red,name=A]%
377 \psset{fontsize=200}
378 \psSolid[object=plan,action=none,
379    definition=solidface,args=A 0,name=P0]
380 \psProjection[object=texte,linecolor=gray,text=A,plan=P0]%
381 \psset{phi=90}
382 \psProjection[object=texte,linecolor=red,text=A,plan=P0]%
383 \axesIIID(4,4,4)(6,6,6)
384 \end{pspicture}
385 \end{LTXexample}
386
387
388 \subsection{Exemples de projections sur différentes faces d'un solide}
389
390 \definecolor{rose}{rgb}{1,0.75,0.74}
391
392 \def\JuangJie{%
393 \begin{pspicture}(-3.5,-2)(3.5,4)
394 \psframe[fillcolor=cyan!50,fillstyle=solid](-3.5,-2)(3.5,4)%
395 \psSolid[object=cylindre,r=8,h=0.2,ngrid=1 36,action=draw**,hue=0.5 0.6]%
396 \psSolid[object=cube,a=8,h=0.2,ngrid=1 36,action=draw**,color1=magenta!50,
397   color2=red!20,color3=yellow!50,color4=green!50,
398   fcol=0 (color1) 1 (color2) 2 (color3) 3 (color4) 4(White)](0,0,4.2)%
399 \psset{solidmemory}%
400 \psSolid[object=cube,a=8,
401    name=A,
402    action=none](0,0,4.2)%
403 %% la face 0
404 \psSolid[object=plan,action=none,definition=solidface,
405    base=-4 4 -4 4,args=A 0,name=P0]%
406 %\psSolid[object=plan,definition=plan,action=none,args=P0,planmarks,action=none,]%
407 \psset{fontsize=30,plan=P0}%
408 \psProjection[object=texte,text=poème](0,3)%
409 \psProjection[object=texte,text=de](0,2)%
410 \psset{fontsize=55}
411 \psProjection[object=texte,linecolor=red,text=Juang Jie]
412 %% la face 4
413 \psSolid[object=plan,action=none,definition=solidface,base=-4 4 -4 4,args=A 4,phi=-90,name=P4]%
414 %\psSolid[object=plan,definition=plan,action=none,args=P4,fontsize=10,planmarks,action=none]%
415 \psset{fontsize=28.45,pos=bc,plan=P4}
416 \psProjection[object=texte,text={Dans ma jeunesse,}](0,3)%
417 \psset{fontsize=20}
418 \psProjection[object=texte,text=j'écoutais le son de la pluie](0,2)%
419 \psProjection[object=texte,text=dans les maisons de plaisir](0,1)%
420 \psProjection[object=texte,text=les tentures frissonnaient]%
421 \psProjection[object=texte,text=sous la lumière rouge](0,-1)%
422 \psProjection[object=texte,text=des candélabres](0,-2)%
423 %% la face 1
424 \psSolid[object=plan,action=none,definition=solidface,base=-4 4 -4 4,args=A 1,phi=180,name=P1]%
425 %\psSolid[object=plan,definition=plan,action=none,args=P1,fontsize=10,planmarks,action=none]%
426 \psset{plan=P1}
427 \psProjection[object=texte,fontsize=25,text=Dans mon âge mûr](0,3)%
428 \psProjection[object=texte,text=j'ai écouté le son de la pluie](0,2)%
429 \psProjection[object=texte,fontsize=18,text={en voyage, à bord d'un bateau}](0,1)%
430 \psProjection[object=texte,text=les nuages pesaient bas]%
431 \psProjection[object=texte,text=sur l'immensité du fleuve](0,-1)%
432 \psProjection[object=texte,text=une oie sauvage ](0,-2)%
433 \psProjection[object=texte,text=séparée de ses soeurs](0,-3)%
434 %% la face 2
435 \psSolid[object=plan,action=none,definition=solidface,base=-4 4 -4 4,args=A 2,phi=180,name=P2]%
436 %\psSolid[object=plan,definition=plan,action=none,args=P2,fontsize=10,planmarks,action=none]%
437 \psset{plan=P2}
438 \psProjection[object=texte,text=appelait dans le vent d'ouest](0,3)%
439 \psProjection[object=texte,text={Aujourd'hui,}](0,2)%
440 \psProjection[object=texte,text=j'écoute le son de la pluie](0,1)%
441 \psProjection[object=texte,text=sous le charme]%
442 \psProjection[object=texte,text=d'un ermitage monastique](0,-1)%
443 \psProjection[object=texte,text=Ma tête est chenue](0,-2)%
444 \psProjection[object=texte,text=chagrins et bonheurs](0,-3)%
445 %% la face 3
446 \psSolid[object=plan,action=none,definition=solidface,args=A 3,phi=180,name=P3]%
447 %\psSolid[object=plan,definition=plan,action=none,args=P3,fontsize=10,planmarks,action=none]%
448 \psset{plan=P3}
449 \psProjection[object=texte,text=séparations et retrouvailles](0,3)%
450 \psProjection[object=texte,text=tout est vanité](0,2)%
451 \psProjection[object=texte,text={Dehors, sur les marches}](0,1)%
452 \psProjection[object=texte,text=les gouttes tambourinent]%
453 \psProjection[object=texte,text= jusqu'à l'aube](0,-1)%
454 \psProjection[object=texte,text=Juang Jie ](0,-3)%
455 \composeSolid
456 \end{pspicture}}
457
458 \def\MollyBloom{%
459 %\psset{lightsrc=-15 -9 5}
460 %\psset{viewpoint=20 -150 30 rtp2xyz,Decran=11}
461 \psset{solidmemory,visibility}
462 %% le plan de base
463 \psSolid[object=plan,
464    definition=equation,
465    ngrid=1. 1.,
466    args={[0 0 1 0]},linecolor=red,
467    base=-8 10 -8 8,
468    linecolor=red,
469    name=G]%
470 \psset{fontsize=25,,pos=bc,plan=G}
471 \psProjection[object=texte,
472    phi=-90,
473    text=le monologue de Molly,
474    pos=bc,
475    ](-5,0)
476 \psProjection[object=texte,text=dans Ulysse de James Joyce](1,-5,0)
477 \psset{h=1,fillcolor=yellow!50,incolor=rose,hollow}
478 \psset{fontsize=20,pos=cc}
479 %
480 \psSolid[object=ruban,name=ruban1,base=9 8 9 -8]
481 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
482 \psProjection[object=texte,plan=R0,
483    text=O cet effrayant torrent tout au fond O et la mer écarlate]
484 %
485 \psSolid[object=ruban,name=ruban1,base=9 -8 -8 -8]
486 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
487 \psProjection[object=texte,plan=R0,
488    text=quelquefois comme du feu et les glorieux couchers de soleil et]
489 %
490 \psSolid[object=ruban,name=ruban1,base=-8 7 7 7]
491 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
492 \psProjection[object=texte,plan=R0,fontsize=18,
493    text=les ruelles bizarres les maisons roses et bleues et jaunes,]
494 %
495 \psSolid[object=ruban,name=ruban1,base=7 7 7 -6]
496 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
497 \psProjection[object=texte,plan=R0,
498    text=et les roseraies et les jasmins et les géraniums,]
499 %
500 \psSolid[object=ruban,name=ruban1,base=7 -6 -6 -6]
501 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
502 \psProjection[object=texte,plan=R0,
503    text=et les cactus de Gibraltar quand j'étais jeune fille,]
504 %
505 \psSolid[object=ruban,name=ruban1,base=-6 5 5 5]
506 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
507 \psProjection[object=texte,plan=R0,fontsize=18,
508    text=quand j'ai mis la rose dans mes cheveux,]
509 %
510 \psSolid[object=ruban,name=ruban1,base=5 5 5 -4]
511 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
512 \psProjection[object=texte,plan=R0,
513    text=comme les filles Andalouses,]
514 %
515 \psSolid[object=ruban,name=ruban1,base=5 -4 -3 -4]
516 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
517 \psProjection[object=texte,plan=R0,
518    text=ou en mettrai-je une rouge oui,]
519 %
520 \psSolid[object=ruban,name=ruban1,base=-3 4 3 4]
521 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
522 \psProjection[object=texte,plan=R0,fontsize=18,
523    text=sous le mur mauresque,]
524 %
525 \psSolid[object=ruban,name=ruban1,base=3 4 3 -2]
526 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
527 \psProjection[object=texte,plan=R0,
528    text=je me suis dit après,]
529 %
530 \psSolid[object=ruban,name=ruban1,base=3 -2 -1.5 -2]
531 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
532 \psProjection[object=texte,plan=R0,
533    text=tout aussi bien,]
534 %
535 \psSolid[object=ruban,name=ruban1,base=-1.5 3 2 3]
536 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
537 \psProjection[object=texte,plan=R0,
538    text=et alors je,]
539 \psSolid[object=ruban,name=ruban1,base=-8 -8 -8 7]
540 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
541 \psProjection[object=texte,plan=R0,
542    text=les figuiers dans les jardins de l'Alameda et toutes,]
543 %
544 \psSolid[object=ruban,name=ruban1,base=-6 -6 -6 5]
545 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
546 \psProjection[object=texte,plan=R0,
547    text=et une Fleur de la montagne oui,]
548 %
549 \psSolid[object=ruban,name=ruban1,base=-3 -4 -3 4]
550 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
551 \psProjection[object=texte,plan=R0,
552    text=et comme il m'a embrassée,]
553 %
554 \psSolid[object=ruban,name=ruban1,base=-1.5 -2 -1.5 3]
555 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
556 \psProjection[object=texte,plan=R0,
557    text=lui qu'un autre,]
558 %
559 \composeSolid
560 }
561
562
563 Nous projetons un poème, vers après vers, sur 4 faces d'un cube.
564 Il est nécessaire de passer l'option \Cadre{solidmemory} au début des
565 commandes. On définit ensuite le cube, que l'on mémorise à l'aide de la
566 commande \Cadre{name=A}~:
567 \begin{verbatim}
568 \psset{solidmemory}
569 \psSolid[object=cube,a=8,name=A1](0,0,4.2)%
570 \end{verbatim}
571
572 Le numéro de chaque face ayant été repéré dans un essai préalable avec
573 l'option \Cadre{numfaces=all}, les commandes suivantes~:
574 \begin{verbatim}
575 \psSolid[object=plan,action=none,definition=solidface,args=A 0,name=P0]%
576 \psProjection[object=texte,text=poème,fontsize=30,plan=P0](0,3)%
577 \end{verbatim}
578 définissent tout d'abord le plan $P0$ comme étant le plan orienté défini par la face
579 d'indice $0$ du solide $A$, avant de demander
580 l'impression du  mot \texttt{poème} sur le plan $P0$, avec une fonte de
581 taille \Cadre{30~pts}, au point de coordonnées  \Cadre{(0,3)} (dans le
582 repère lié à ce plan). On aurait pu changer l'orientation du texte
583 avec \Cadre{phi=-90} par exemple, dans l'une ou l'autre de ces commandes.
584
585 Par défaut, si la face n'est pas visible le texte reste caché. En
586 écrivant \Cadre{visibility} dans les options, le texte apparaîtra
587 même s'il est caché comme dans l'exemple suivant.
588
589 On n'oubliera pas d'écrire à la fin des commandes d'écriture des
590 textes\Cadre{$\backslash$composeSolid}, pour que tous ces tracés
591 soient pris en compte.
592 Toute autre commande de \texttt{PStricks} aura le même effet et
593 \verb+composeSolid+ sera superflu.
594
595 \begin{center}
596 \psset{viewpoint=40 20 30 rtp2xyz,Decran=16}
597 \JuangJie \hfil
598 \psset{viewpoint=40 110 30 rtp2xyz,Decran=16}
599 \JuangJie
600 \end{center}
601 \begin{center}
602 \psset{viewpoint=40 200 30 rtp2xyz,Decran=16}
603 \JuangJie\hfil
604 \psset{viewpoint=40 290 30 rtp2xyz,Decran=16}
605 \JuangJie
606 \end{center}
607
608
609 \begin{center}
610 \begin{pspicture}(-8,-6)(8,3)
611 \psset{lightsrc=-15 -9 5}
612 \psframe(-8,-6)(8,3)
613 \psset{viewpoint=20 -150 30 rtp2xyz,Decran=11}\MollyBloom
614 \end{pspicture}
615 \end{center}
616 \begin{center}
617 \begin{pspicture}(-8,-6)(8,7)
618 \psset{lightsrc=0 0 3}
619 \psframe(-8,-6)(8,7)
620 \psset{viewpoint=6 -150 90 rtp2xyz,Decran=2.8}\MollyBloom
621 \end{pspicture}
622 \end{center}

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.