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