3 The object \Lkeyword{texte} of the macro \Lcs{psProjection} allows us
4 to \Index{project} character strings onto planes.
6 \subsection{The parameters and the options}
8 There are three parameters:\Lkeyword{text} which defines the
9 string, \Lkeyword{fontsize}, which gives the dimension of the font
10 in points (remember: 28.45~pts correspond to 1~cm), and finally
11 \Lkeyword{pos}, which defines the position of the \Index{text}. By
12 default, the text is centred at the origin of the plane.
14 This last parameter needs some explanation. See the string
15 \texttt{petit texte} represented below.
17 \begin{pspicture}(-5,-2)(5,2)
18 \rput(0,0){\psframebox[linestyle=none,fillstyle=solid,
19 fillcolor=yellow!50,framesep=0pt]{\phantom{\timesnormal petit texte}}}
20 \rput(0,0){\rnode[lb]{A}{\rnode[rb]{B}{\rnode[rt]{C}{%
21 \rnode[lt]{D}{\rnode[l]{E}{\rnode[r]{F}{%
22 \rnode[t]{G}{\rnode[b]{H}{\timesnormal petit texte}}}}}}}}}
24 \ncline{A}{B}\ncline{B}{C}\ncline{C}{D}\ncline{D}{A}
33 \rput(A){\pnode(0,\baselineskip){B1}}
34 \rput(B){\pnode(0,\baselineskip){B2}}
35 \psdots(A')(B')(C')(D')(E')(F')(G')(H')(B1)(B2)(0,0)
37 \pnode(! \GetCenter{A} A.x 0.5 sub A.y 0.5 sub){A1}
39 \uput[dl](A1){\texttt{dl}}
40 \pnode(! \GetCenter{B1} B1.x 0.5 sub B1.y){B1l}
42 \uput[l](B1l){\texttt{bl}}
43 \pnode(! \GetCenter{E} E.x 0.5 sub E.y){El}
45 \uput[l](El){\texttt{cl}}
46 \pnode(! \GetCenter{D} D.x 0.5 sub D.y 0.5 add){Dl}
48 \uput[ul](Dl){\texttt{ul}}
49 \pnode(! \GetCenter{G} G.x G.y 0.5 add){Gu}
51 \uput[u](Gu){\texttt{uc}}
52 \pnode(! \GetCenter{H} H.x H.y 0.5 sub){Hd}
54 \uput[d](Hd){\texttt{dc}}
55 \pnode(! \GetCenter{C} C.x 0.5 add C.y 0.5 add){Cr}
57 \uput[ur](Cr){\texttt{ur}}
58 \pnode(! \GetCenter{B} B.x 0.5 add B.y 0.5 sub){Br}
60 \uput[dr](Br){\texttt{dr}}
61 \pnode(! \GetCenter{B2} B2.x 0.5 add B2.y){B2r}
63 \uput[r](B2r){\texttt{br}}
64 \pnode(! \GetCenter{F} F.x 0.5 add F.y){Fr}
66 \uput[r](Fr){\texttt{cr}}
70 We have $4$~horizontal reference lines: the bottom line
71 \verb+(d)own+, the base line \verb+(b)aseline+, the median line,
72 or centre line \verb+(c)enter+, and the upper line \verb+(u)p+.
74 There are as well $4$~vertical reference lines: the left line
75 \verb+(l)eft+, the base line \verb+(b)aseline+, the centre line
76 \verb+(c)enter+ and the right line \verb+(r)ight+. In the case of
77 strings, the two vertical lines \verb+l+ and \verb+b+ might be
78 indistinguishable and easily confounded.
80 The intersection of the $4$ horizontal lines with the $4$ vertical
81 lines gives us $16$~positioning point possibilities \verb+dl+,
82 \verb+bl+, \verb+cl+, \verb+ul+, \verb+db+, \verb+bb+, \verb+cb+,
83 \verb+ub+, \verb+dc+, \verb+bc+, \verb+cc+, \verb+uc+, \verb+dr+,
84 \verb+br+, \verb+cr+, \verb+ur+.
86 Of these, $4$~are considered as \textit{inner points}: \verb+bb+,
87 \verb+bc+, \verb+cb+ and \verb+cc+.
89 When the parameter \Lkeyword{pos} of \Lcs{psProjection} is assigned
90 one of these four inner points, it means that the latter will be
91 situated at the origin of the plane of projection.
93 When the parameter \Lkeyword{pos} of \Lcs{psProjection} is assigned
94 one of the twelve remaining points, it indicates the direction in
95 which the text will be positioned relative to the origin of the
98 For example, \verb+\psProjection[...,pos=uc](0,0)+ indicates that
99 the text will be centred relative to the point $(0,0)$ and
102 %% Le plan doit \^{e}tre d\'{e}fini par son origine
103 %% \Cadre{$\mathtt{(x_0ny_0,z_0)}$} et la normale %$
104 %% \Cadre{\texttt{[normal=1 0 0 90]}}. Pour les particularit\'{e}s
105 %% de la d\'{e}finition de la normale, car il y a trois fa\c{c}ons de le faire !
106 %% Tous les d\'{e}tails sont dans la partie \Cadre{\texttt{``Choisir un plan
107 %% par son origine et une normale''}} de la documentation de
108 %% \texttt{doc-psProjection}.
110 %% La taille de la fonte doit \^{e}tre fix\'{e}e en points avec l'option
114 \subsection{Examples of projecting onto a plane}
116 \subsubsection{Example 1: \Index{projection} onto $Oxy$, with the option \texttt{pos=bc}}
118 \begin{LTXexample}[width=8cm]
119 \begin{pspicture}(-4,-1.5)(4,1.5)
121 \psset{lightsrc=10 0 10,
122 viewpoint=50 -90 89.99 rtp2xyz,Decran=50}
123 \psSolid[object=plan,definition=normalpoint,plangrid,
124 base=-4 4 -1 1,args={0 0 0 [0 0 1]},name=monplan,]
125 \psProjection[object=texte,
126 fontsize=20,linecolor=red,
128 text=j'aimerais tant voir Syracuse,
130 \axesIIID(0,0,0)(4,2,1)
135 \subsubsection{Example 2: \Index{projection} onto $Oxy$, centred text}
137 \begin{LTXexample}[width=8cm]
138 \begin{pspicture}(-4,-1.5)(4,1.5)
140 \psset{lightsrc=10 0 10,
141 viewpoint=50 -90 89.99 rtp2xyz,,Decran=50}
142 \psSolid[object=plan,definition=normalpoint,plangrid,
143 base=-4 4 -1 1,args={0 0 0 [0 0 1]},name=monplan,]
144 \psProjection[object=texte,
145 fontsize=20,linecolor=red,
146 text= L'\^{\i}le de P\^{a}ques et Kairouan,
148 \axesIIID(0,0,0)(4,2,1)
153 \subsubsection{Example 3: \Index{projection} onto $Oxy$, with different options
154 \texttt{pos=dl, etc.}}
158 \begin{pspicture}(-4,-1.5)(4,1.5)
160 \psset{lightsrc=10 0 10,viewpoint=50 -90 89.99 rtp2xyz,Decran=50}
161 \psSolid[object=plan,definition=normalpoint,plangrid,
162 base=-10 10 -1 1,args={0 0 0 [0 0 1]},name=monplan,]
163 \psProjection[object=texte,
164 fontsize=20,linecolor=red,
165 text=Et les grands oiseaux qui s'amusent,
168 \axesIIID(0,0,0)(8,1,1)
169 \rput(0,-1.5){\Cadre{\texttt{[pos=dl]}}}
175 \begin{pspicture}(-4,-1.5)(4,1.5)
177 \psset{lightsrc=10 0 10,viewpoint=50 -90 89.99 rtp2xyz,Decran=50}
178 \psSolid[object=plan,definition=normalpoint,plangrid,
179 base=-10 10 -1 1,args={0 0 0 [0 0 1]},name=monplan,]
180 \psProjection[object=texte,
181 fontsize=20,linecolor=red,
182 text= A glisser l'aile sous le vent.,
185 \axesIIID(0,0,0)(8,1,1)
186 \rput(0,-1.5){\Cadre{\texttt{[pos=dr]}}}
192 \begin{pspicture}(-4,-1.5)(4,1.5)
194 \psset{lightsrc=10 0 10,viewpoint=50 -90 89.99 rtp2xyz,Decran=50}
195 \psSolid[object=plan,definition=normalpoint,plangrid,
196 base=-10 10 -1 1,args={0 0 0 [0 0 1]},name=monplan,]
197 \psProjection[object=texte,
198 fontsize=20,linecolor=red,
199 text=Avant que ma jeunesse s'use,
202 \axesIIID(0,0,0)(8,1,1)
203 \rput(0,-1.5){\Cadre{\texttt{[pos=ur]}}}
209 \begin{pspicture}(-4,-1.5)(4,1.5)
211 \psset{lightsrc=10 0 10,viewpoint=50 -90 89.99 rtp2xyz,Decran=50}
212 \psSolid[object=plan,definition=normalpoint,plangrid,
213 base=-10 10 -1 1,args={0 0 0 [0 0 1]},name=monplan,]
214 \psProjection[object=texte,
215 fontsize=20,linecolor=red,
216 text=Et que mes printemps soient partis,
219 \axesIIID(0,0,0)(8,1,1)
220 \rput(0,-1.5){\Cadre{\texttt{[pos=ul]}}}
226 \begin{pspicture}(-4,-1.5)(4,1.5)
228 \psset{lightsrc=10 0 10,viewpoint=50 -90 89.99 rtp2xyz,Decran=50}
229 \psSolid[object=plan,definition=normalpoint,plangrid,
230 base=-10 10 -1 1,args={0 0 0 [0 0 1]},name=monplan,]
231 \psProjection[object=texte,
232 fontsize=20,linecolor=red,
233 text=J'aimerais tant voir Syracuse,
236 \axesIIID(0,0,0)(8,1,1)
237 \rput(0,-1.5){\Cadre{\texttt{[pos=uc]}}}
243 \begin{pspicture}(-4,-1.5)(4,1.5)
245 \psset{lightsrc=10 0 10,viewpoint=50 -90 89.99 rtp2xyz,Decran=50}
246 \psSolid[object=plan,definition=normalpoint,plangrid,
247 base=-10 10 -1 1,args={0 0 0 [0 0 1]},name=monplan,]
248 \psProjection[object=texte,
249 fontsize=20,linecolor=red,
250 text=Pour m'en souvenir \`{a} Paris.,
253 \axesIIID(0,0,0)(8,1,1)
254 \rput(0,-1.5){\Cadre{\texttt{[pos=dc]}}}
258 \subsubsection{Example 4: \Index{projection} onto $Oxy$ with text rotation}
260 \begin{LTXexample}[width=8cm]
261 \begin{pspicture}(-4,-3)(4,3)
263 \psset{lightsrc=10 0 10,
264 viewpoint=50 -90 89.99 rtp2xyz,Decran=50}
265 \psSolid[object=plan,definition=normalpoint,plangrid,
266 base=-4 4 -3 3,args={0 0 0 [0 0 1]},name=monplan,]
268 \psProjection[object=texte,
269 fontsize=28.45,linecolor=gray!50,
270 text=Tournez man\`{e}ges]%
271 \psProjection[object=texte,
272 fontsize=28.45,linecolor=red,
273 text=Tournez man\`{e}ges,
275 \axesIIID(0,0,0)(4,3,1)
278 The text rotation is introduced by the parameter \texttt{phi=60}.
280 \subsubsection{Example 5: positioning text at a point}
282 \begin{LTXexample}[width=8cm]
283 \begin{pspicture}(-4,-3)(4,3)
285 \psset{viewpoint=50 -90 89.99 rtp2xyz,Decran=50}
286 \psSolid[object=plan,definition=normalpoint,plangrid,
287 base=-4 4 -3 3,args={0 0 0 [0 0 1]},name=monplan,]
288 \psset{fontsize=28.45,plan=monplan}
289 \psProjection[object=texte,
292 \psProjection[object=texte,
295 \psProjection[object=texte,
299 \psPoint(-2,-2,0){O1}
301 \psdots[dotsize=0.2](O)(O1)(O2)
302 \axesIIID(0,0,0)(4,4,1)
306 \subsection{Examples for \Index{projecting} onto a face of a solid}
308 \subsubsection{Method}
310 The solid must be memorised with the general option
311 \texttt{$\backslash$psset$\{$solidmemory$\}$}. The first thing to %$
312 do is to find the numbers of the faces of the solid with the
313 option \texttt{\Lkeyword{numfaces}=\Lkeyval{all}}.
314 \begin{LTXexample}[width=8cm]
315 \psset{viewpoint=50 20 30 rtp2xyz,Decran=100}
316 \begin{pspicture}(-4,-4)(4,4)
317 \psSolid[object=cube,a=2,action=draw,
318 linecolor=red,numfaces=all]%
319 \axesIIID(1,1,1)(2,2,2)
323 Then we define the projection plane as the chosen face, where in
324 this case we put \texttt{A} on the face with the index number 0:
327 Then we define the projection plane by a chosen face, there we put \texttt{A} on the face with the index number 0:
329 \psSolid[object=plan,definition=solidface,args=A 0,name=P0]
330 \psProjection[object=texte,linecolor=red,text=A,plan=P0]%
334 \begin{LTXexample}[width=8cm]
335 \psset{viewpoint=50 20 30 rtp2xyz,Decran=50}
336 \begin{pspicture}(-4,-4)(4,5)
339 \psSolid[object=cube,a=8,action=draw,name=A,linecolor=red]%
341 \psSolid[object=plan,action=none,
342 definition=solidface,args=A 0,name=P0]
343 \psProjection[object=texte,linecolor=red,text=A,plan=P0]%
344 \psSolid[object=plan,action=none,
345 definition=solidface,args=A 1,name=P1]
346 \psProjection[object=texte,linecolor=red,text=B,plan=P1]%
347 \psSolid[object=plan,action=none,
348 definition=solidface,args=A 4,name=P4]
349 \psProjection[object=texte,linecolor=red,text=E,plan=P4]%
350 \axesIIID(4,4,4)(6,6,6)
354 \subsubsection{Text rotation with the option \texttt{phi}}
356 \begin{LTXexample}[width=8cm]
357 \psset{viewpoint=50 20 30 rtp2xyz,Decran=50}
359 \begin{pspicture}(-8,-7)(4,9)
361 \psSolid[object=cube,a=8,action=draw,linecolor=red,name=A]%
363 \psSolid[object=plan,action=none,
364 definition=solidface,args=A 0,name=P0]
365 \psProjection[object=texte,linecolor=gray,text=A,plan=P0]%
367 \psProjection[object=texte,linecolor=red,text=A,plan=P0]%
368 \axesIIID(4,4,4)(6,6,6)
373 \subsection{Examples of \Index{projecting} onto different faces of a solid}
375 \definecolor{rose}{rgb}{1,0.75,0.74}
378 \begin{pspicture}(-3.5,-2)(3.5,4)
379 \psframe[fillcolor=cyan!50,fillstyle=solid](-3.5,-2)(3.5,4)%
380 \psSolid[object=cylindre,r=8,h=0.2,ngrid=1 36,action=draw**,hue=0.5 0.6]%
381 \psSolid[object=cube,a=8,h=0.2,ngrid=1 36,action=draw**,color1=magenta!50,
382 color2=red!20,color3=yellow!50,color4=green!50,
383 fcol=0 (color1) 1 (color2) 2 (color3) 3 (color4) 4(White)](0,0,4.2)%
385 \psSolid[object=cube,a=8,
387 action=none](0,0,4.2)%
389 \psSolid[object=plan,action=none,definition=solidface,
390 base=-4 4 -4 4,args=A 0,name=P0]%
391 %\psSolid[object=plan,definition=plan,action=none,args=P0,planmarks,action=none,]%
392 \psset{fontsize=30,plan=P0}%
393 \psProjection[object=texte,text=po\`{e}me](0,3)%
394 \psProjection[object=texte,text=de](0,2)%
396 \psProjection[object=texte,linecolor=red,text=Juang Jie]
398 \psSolid[object=plan,action=none,definition=solidface,base=-4 4 -4 4,args=A 4,phi=-90,name=P4]%
399 %\psSolid[object=plan,definition=plan,action=none,args=P4,fontsize=10,planmarks,action=none]%
400 \psset{fontsize=28.45,pos=bc,plan=P4}
401 \psProjection[object=texte,text={Dans ma jeunesse,}](0,3)%
403 \psProjection[object=texte,text=j'\'{e}coutais le son de la pluie](0,2)%
404 \psProjection[object=texte,text=dans les maisons de plaisir](0,1)%
405 \psProjection[object=texte,text=les tentures frissonnaient]%
406 \psProjection[object=texte,text=sous la lumi\`{e}re rouge](0,-1)%
407 \psProjection[object=texte,text=des cand\'{e}labres](0,-2)%
409 \psSolid[object=plan,action=none,definition=solidface,base=-4 4 -4 4,args=A 1,phi=180,name=P1]%
410 %\psSolid[object=plan,definition=plan,action=none,args=P1,fontsize=10,planmarks,action=none]%
412 \psProjection[object=texte,fontsize=25,text=Dans mon \^{a}ge m\^{u}r](0,3)%
413 \psProjection[object=texte,text=j'ai \'{e}cout\'{e} le son de la pluie](0,2)%
414 \psProjection[object=texte,fontsize=18,text={en voyage, \`{a} bord d'un bateau}](0,1)%
415 \psProjection[object=texte,text=les nuages pesaient bas]%
416 \psProjection[object=texte,text=sur l'immensit\'{e} du fleuve](0,-1)%
417 \psProjection[object=texte,text=une oie sauvage ](0,-2)%
418 \psProjection[object=texte,text=s\'{e}par\'{e}e de ses soeurs](0,-3)%
420 \psSolid[object=plan,action=none,definition=solidface,base=-4 4 -4 4,args=A 2,phi=180,name=P2]%
421 %\psSolid[object=plan,definition=plan,action=none,args=P2,fontsize=10,planmarks,action=none]%
423 \psProjection[object=texte,text=appelait dans le vent d'ouest](0,3)%
424 \psProjection[object=texte,text={Aujourd'hui,}](0,2)%
425 \psProjection[object=texte,text=j'\'{e}coute le son de la pluie](0,1)%
426 \psProjection[object=texte,text=sous le charme]%
427 \psProjection[object=texte,text=d'un ermitage monastique](0,-1)%
428 \psProjection[object=texte,text=Ma t\^{e}te est chenue](0,-2)%
429 \psProjection[object=texte,text=chagrins et bonheurs](0,-3)%
431 \psSolid[object=plan,action=none,definition=solidface,args=A 3,phi=180,name=P3]%
432 %\psSolid[object=plan,definition=plan,action=none,args=P3,fontsize=10,planmarks,action=none]%
434 \psProjection[object=texte,text=s\'{e}parations et retrouvailles](0,3)%
435 \psProjection[object=texte,text=tout est vanit\'{e}](0,2)%
436 \psProjection[object=texte,text={Dehors, sur les marches}](0,1)%
437 \psProjection[object=texte,text=les gouttes tambourinent]%
438 \psProjection[object=texte,text= jusqu'\`{a} l'aube](0,-1)%
439 \psProjection[object=texte,text=Juang Jie ](0,-3)%
444 %\psset{lightsrc=-15 -9 5}
445 %\psset{viewpoint=20 -150 30 rtp2xyz,Decran=11}
446 \psset{solidmemory,visibility}
448 \psSolid[object=plan,
451 args={[0 0 1 0]},linecolor=red,
455 \psset{fontsize=25,,pos=bc,plan=G}
456 \psProjection[object=texte,
458 text=le monologue de Molly,
461 \psProjection[object=texte,text=dans Ulysse de James Joyce](1,-5,0)
462 \psset{h=1,fillcolor=yellow!50,incolor=rose,hollow}
463 \psset{fontsize=20,pos=cc}
465 \psSolid[object=ruban,name=ruban1,base=9 8 9 -8]
466 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
467 \psProjection[object=texte,plan=R0,
468 text=O cet effrayant torrent tout au fond O et la mer \'{e}carlate]
470 \psSolid[object=ruban,name=ruban1,base=9 -8 -8 -8]
471 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
472 \psProjection[object=texte,plan=R0,
473 text=quelquefois comme du feu et les glorieux couchers de soleil et]
475 \psSolid[object=ruban,name=ruban1,base=-8 7 7 7]
476 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
477 \psProjection[object=texte,plan=R0,fontsize=18,
478 text=les ruelles bizarres les maisons roses et bleues et jaunes,]
480 \psSolid[object=ruban,name=ruban1,base=7 7 7 -6]
481 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
482 \psProjection[object=texte,plan=R0,
483 text=et les roseraies et les jasmins et les g\'{e}raniums,]
485 \psSolid[object=ruban,name=ruban1,base=7 -6 -6 -6]
486 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
487 \psProjection[object=texte,plan=R0,
488 text=et les cactus de Gibraltar quand j'\'{e}tais jeune fille,]
490 \psSolid[object=ruban,name=ruban1,base=-6 5 5 5]
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=quand j'ai mis la rose dans mes cheveux,]
495 \psSolid[object=ruban,name=ruban1,base=5 5 5 -4]
496 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
497 \psProjection[object=texte,plan=R0,
498 text=comme les filles Andalouses,]
500 \psSolid[object=ruban,name=ruban1,base=5 -4 -3 -4]
501 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
502 \psProjection[object=texte,plan=R0,
503 text=ou en mettrai-je une rouge oui,]
505 \psSolid[object=ruban,name=ruban1,base=-3 4 3 4]
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=sous le mur mauresque,]
510 \psSolid[object=ruban,name=ruban1,base=3 4 3 -2]
511 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
512 \psProjection[object=texte,plan=R0,
513 text=je me suis dit apr\`{e}s,]
515 \psSolid[object=ruban,name=ruban1,base=3 -2 -1.5 -2]
516 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
517 \psProjection[object=texte,plan=R0,
518 text=tout aussi bien,]
520 \psSolid[object=ruban,name=ruban1,base=-1.5 3 2 3]
521 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
522 \psProjection[object=texte,plan=R0,
524 \psSolid[object=ruban,name=ruban1,base=-8 -8 -8 7]
525 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
526 \psProjection[object=texte,plan=R0,
527 text=les figuiers dans les jardins de l'Alameda et toutes,]
529 \psSolid[object=ruban,name=ruban1,base=-6 -6 -6 5]
530 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
531 \psProjection[object=texte,plan=R0,
532 text=et une Fleur de la montagne oui,]
534 \psSolid[object=ruban,name=ruban1,base=-3 -4 -3 4]
535 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
536 \psProjection[object=texte,plan=R0,
537 text=et comme il m'a embrass\'{e}e,]
539 \psSolid[object=ruban,name=ruban1,base=-1.5 -2 -1.5 3]
540 \psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
541 \psProjection[object=texte,plan=R0,
542 text=lui qu'un autre,]
547 We project a poem, verse by verse, onto 4 faces of a cube. It is
548 necessary to use the option \texttt{solidmemory} at the beginning
551 \psSolid[object=cube,a=8,name=A1](0,0,4.2)%
553 of the code. We then define the cube, which is memorised with the
554 help of the command \texttt{name=A}:
558 \psProjection[object=texte,text=po\`{e}me,fontsize=30,plan=P0](0,3)%
559 \psSolid[object=cube,a=8,name=A](0,0,4.2)%
562 The number of each face needs to be known---from a previous run
563 of the code with the option \texttt{\Lkeyword{numfaces}=\Lkeyval{all}}. The following
568 \psSolid[object=plan,action=none,definition=solidface,args=A 0,name=P0]%
569 \psProjection[object=texte,text=po\`{e}me,fontsize=30,plan=P0](0,3)%
571 define the plane $P0$ as the oriented plane of the face with index
572 number 0 of the solid $A$, before the word \texttt{po\`{e}me} is
573 projected onto $P0$, with a font size of 30~pts, to the point with
574 coordinates $(0,3)$ (within the coordinate system of that plane).
575 We could have changed the orientation of the text to
576 \texttt{phi=-90} for example, in the one or other of the commands.
578 By default, if the face is not visible, its text stays hidden. By
579 putting \Lkeyword{visibility} in the options, the text is shown when
580 it would otherwise not be, as in the following example.
582 You must not forget to write \texttt{$\backslash$composeSolid} at
583 the end of the text-writing commands for all these lines to be
584 taken into account. Any other PStricks command will have
585 the usual effect and \verb+\composeSolid+ will be unnecessary.
591 \psset{viewpoint=40 20 30 rtp2xyz,Decran=16}
593 \psset{viewpoint=40 110 30 rtp2xyz,Decran=16}
597 \psset{viewpoint=40 200 30 rtp2xyz,Decran=16}
599 \psset{viewpoint=40 290 30 rtp2xyz,Decran=16}
605 \begin{pspicture}(-8,-6)(8,3)
606 \psset{lightsrc=-15 -9 5}
608 \psset{viewpoint=20 -150 30 rtp2xyz,Decran=11}\MollyBloom
612 \begin{pspicture}(-8,-6)(8,7)
613 \psset{lightsrc=0 0 3}
615 \psset{viewpoint=6 -150 89.9 rtp2xyz,Decran=2.8}\MollyBloom