summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/pst-solides3d/doc-en/par-projectiontexte_en_corr.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/generic/pst-solides3d/doc-en/par-projectiontexte_en_corr.tex')
-rw-r--r--Master/texmf-dist/doc/generic/pst-solides3d/doc-en/par-projectiontexte_en_corr.tex619
1 files changed, 619 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-solides3d/doc-en/par-projectiontexte_en_corr.tex b/Master/texmf-dist/doc/generic/pst-solides3d/doc-en/par-projectiontexte_en_corr.tex
new file mode 100644
index 00000000000..14f5d4e6dac
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-solides3d/doc-en/par-projectiontexte_en_corr.tex
@@ -0,0 +1,619 @@
+\section{Text}
+
+The object \texttt{texte} of the macro \bs{psProjection} allows us
+to project character strings onto planes.
+
+\subsection{The parameters and the options}
+
+There are three parameters: \texttt{[text]} which defines the
+string, \texttt{[fontsize]}, which gives the dimension of the font
+in points (remember: 28.45~pts correspond to 1~cm), and finally
+\texttt{[pos]}, which defines the position of the text. By
+default, the text is centred at the origin of the plane.
+
+This last parameter needs some explanation. See the string
+ \texttt{petit texte} represented below.
+\begin{center}
+\begin{pspicture}(-5,-2)(5,2)
+\rput(0,0){\psframebox[linestyle=none,fillstyle=solid,
+ fillcolor=yellow!50,framesep=0pt]{\phantom{\timesnormal petit texte}}}
+\rput(0,0){\rnode[lb]{A}{\rnode[rb]{B}{\rnode[rt]{C}{%
+ \rnode[lt]{D}{\rnode[l]{E}{\rnode[r]{F}{%
+ \rnode[t]{G}{\rnode[b]{H}{\timesnormal petit texte}}}}}}}}}
+%\psset{nodesep=5pt}
+\ncline{A}{B}\ncline{B}{C}\ncline{C}{D}\ncline{D}{A}
+\pnode({A}){A'}
+\pnode({B}){B'}
+\pnode({C}){C'}
+\pnode({D}){D'}
+\pnode({E}){E'}
+\pnode({F}){F'}
+\pnode({G}){G'}
+\pnode({H}){H'}
+\rput(A){\pnode(0,\baselineskip){B1}}
+\rput(B){\pnode(0,\baselineskip){B2}}
+\psdots(A')(B')(C')(D')(E')(F')(G')(H')(B1)(B2)(0,0)
+\psline(B1)(B2)
+\pnode(! \GetCenter{A} A.x 0.5 sub A.y 0.5 sub){A1}
+\ncline{->}{A}{A1}
+\uput[dl](A1){\texttt{dl}}
+\pnode(! \GetCenter{B1} B1.x 0.5 sub B1.y){B1l}
+\ncline{->}{B1}{B1l}
+\uput[l](B1l){\texttt{bl}}
+\pnode(! \GetCenter{E} E.x 0.5 sub E.y){El}
+\ncline{->}{E}{El}
+\uput[l](El){\texttt{cl}}
+\pnode(! \GetCenter{D} D.x 0.5 sub D.y 0.5 add){Dl}
+\ncline{->}{D}{Dl}
+\uput[ul](Dl){\texttt{ul}}
+\pnode(! \GetCenter{G} G.x G.y 0.5 add){Gu}
+\ncline{->}{G}{Gu}
+\uput[u](Gu){\texttt{uc}}
+\pnode(! \GetCenter{H} H.x H.y 0.5 sub){Hd}
+\ncline{->}{H}{Hd}
+\uput[d](Hd){\texttt{dc}}
+\pnode(! \GetCenter{C} C.x 0.5 add C.y 0.5 add){Cr}
+\ncline{->}{C}{Cr}
+\uput[ur](Cr){\texttt{ur}}
+\pnode(! \GetCenter{B} B.x 0.5 add B.y 0.5 sub){Br}
+\ncline{->}{B}{Br}
+\uput[dr](Br){\texttt{dr}}
+\pnode(! \GetCenter{B2} B2.x 0.5 add B2.y){B2r}
+\ncline{->}{B2}{B2r}
+\uput[r](B2r){\texttt{br}}
+\pnode(! \GetCenter{F} F.x 0.5 add F.y){Fr}
+\ncline{->}{F}{Fr}
+\uput[r](Fr){\texttt{cr}}
+\end{pspicture}
+\end{center}
+
+We have $4$~horizontal reference lines: the bottom line
+\verb+(d)own+, the base line \verb+(b)aseline+, the median line,
+or centre line \verb+(c)enter+, and the upper line \verb+(u)p+.
+
+There are as well $4$~vertical reference lines: the left line
+\verb+(l)eft+, the base line \verb+(b)aseline+, the centre line
+\verb+(c)enter+ and the right line \verb+(r)ight+. In the case of
+strings, the two vertical lines \verb+l+ and \verb+b+ might be
+indistinguishable and easily confounded.
+
+The intersection of the $4$ horizontal lines with the $4$ vertical
+lines gives us $16$~positioning point possibilities \verb+dl+,
+\verb+bl+, \verb+cl+, \verb+ul+, \verb+db+, \verb+bb+, \verb+cb+,
+\verb+ub+, \verb+dc+, \verb+bc+, \verb+cc+, \verb+uc+, \verb+dr+,
+\verb+br+, \verb+cr+, \verb+ur+.
+
+Of these, $4$~are considered as \textit{inner points}: \verb+bb+,
+\verb+bc+, \verb+cb+ and \verb+cc+.
+
+When the parameter \verb+[pos]+ of \bs{psProjection} is assigned
+one of these four inner points, it means that the latter will be
+situated at the origin of the plane of projection.
+
+When the parameter \verb+[pos]+ of \bs{psProjection} is assigned
+one of the twelve remaining points, it indicates the direction in
+which the text will be positioned relative to the origin of the
+plane of projection.
+
+For example, \verb+\psProjection[...,pos=uc](0,0)+ indicates that
+the text will be centred relative to the point $(0,0)$ and
+situated above it.
+
+%% Le plan doit \^{e}tre d\'{e}fini par son origine
+%% \Cadre{$\mathtt{(x_0ny_0,z_0)}$} et la normale %$
+%% \Cadre{\texttt{[normal=1 0 0 90]}}. Pour les particularit\'{e}s
+%% de la d\'{e}finition de la normale, car il y a trois fa\c{c}ons de le faire !
+%% Tous les d\'{e}tails sont dans la partie \Cadre{\texttt{``Choisir un plan
+%% par son origine et une normale''}} de la documentation de
+%% \texttt{doc-psProjection}.
+
+%% La taille de la fonte doit \^{e}tre fix\'{e}e en points avec l'option
+%% . .
+
+
+\subsection{Examples of projecting onto a plane}
+
+\subsubsection{Example 1: projection onto $Oxy$, with the option \texttt{pos=bc}}
+
+\begin{LTXexample}[width=8cm]
+\begin{pspicture}(-4,-1.5)(4,1.5)
+\psset{solidmemory}
+\psset{lightsrc=10 0 10,
+ viewpoint=50 -90 89.99 rtp2xyz,Decran=50}
+\psSolid[object=plan,definition=normalpoint,plangrid,
+ base=-4 4 -1 1,args={0 0 0 [0 0 1]},name=monplan,]
+\psProjection[object=texte,
+ fontsize=20,linecolor=red,
+ pos=bc,plan=monplan,
+ text=j'aimerais tant voir Syracuse,
+](0,0)%
+\axesIIID(0,0,0)(4,2,1)
+\composeSolid
+\end{pspicture}
+\end{LTXexample}
+
+\subsubsection{Example 2: projection onto $Oxy$, centred text}
+
+\begin{LTXexample}[width=8cm]
+\begin{pspicture}(-4,-1.5)(4,1.5)
+\psset{solidmemory}
+\psset{lightsrc=10 0 10,
+ viewpoint=50 -90 89.99 rtp2xyz,,Decran=50}
+\psSolid[object=plan,definition=normalpoint,plangrid,
+ base=-4 4 -1 1,args={0 0 0 [0 0 1]},name=monplan,]
+\psProjection[object=texte,
+ fontsize=20,linecolor=red,
+ text= L'\^{\i}le de P\^{a}ques et Kairouan,
+ plan=monplan]%
+\axesIIID(0,0,0)(4,2,1)
+\end{pspicture}
+\end{LTXexample}
+
+
+\subsubsection{Example 3: projection onto $Oxy$, with different options
+\texttt{pos=dl, etc.}}
+
+\begin{center}
+\psset{unit=.8}
+\begin{pspicture}(-4,-1.5)(4,1.5)
+\psset{solidmemory}
+\psset{lightsrc=10 0 10,viewpoint=50 -90 89.99 rtp2xyz,Decran=50}
+\psSolid[object=plan,definition=normalpoint,plangrid,
+ base=-10 10 -1 1,args={0 0 0 [0 0 1]},name=monplan,]
+\psProjection[object=texte,
+ fontsize=20,linecolor=red,
+ text=Et les grands oiseaux qui s'amusent,
+ pos=dl,
+ plan=monplan]%
+\axesIIID(0,0,0)(8,1,1)
+\rput(0,-1.5){\Cadre{\texttt{[pos=dl]}}}
+\end{pspicture}
+\end{center}
+
+\begin{center}
+\psset{unit=.8}
+\begin{pspicture}(-4,-1.5)(4,1.5)
+\psset{solidmemory}
+\psset{lightsrc=10 0 10,viewpoint=50 -90 89.99 rtp2xyz,Decran=50}
+\psSolid[object=plan,definition=normalpoint,plangrid,
+ base=-10 10 -1 1,args={0 0 0 [0 0 1]},name=monplan,]
+\psProjection[object=texte,
+ fontsize=20,linecolor=red,
+ text= A glisser l'aile sous le vent.,
+ pos=dr,
+ plan=monplan]%
+\axesIIID(0,0,0)(8,1,1)
+\rput(0,-1.5){\Cadre{\texttt{[pos=dr]}}}
+\end{pspicture}
+\end{center}
+
+\begin{center}
+\psset{unit=.8}
+\begin{pspicture}(-4,-1.5)(4,1.5)
+\psset{solidmemory}
+\psset{lightsrc=10 0 10,viewpoint=50 -90 89.99 rtp2xyz,Decran=50}
+\psSolid[object=plan,definition=normalpoint,plangrid,
+ base=-10 10 -1 1,args={0 0 0 [0 0 1]},name=monplan,]
+\psProjection[object=texte,
+ fontsize=20,linecolor=red,
+ text=Avant que ma jeunesse s'use,
+ pos=ur,
+ plan=monplan]%
+\axesIIID(0,0,0)(8,1,1)
+\rput(0,-1.5){\Cadre{\texttt{[pos=ur]}}}
+\end{pspicture}
+\end{center}
+
+\begin{center}
+\psset{unit=.8}
+\begin{pspicture}(-4,-1.5)(4,1.5)
+\psset{solidmemory}
+\psset{lightsrc=10 0 10,viewpoint=50 -90 89.99 rtp2xyz,Decran=50}
+\psSolid[object=plan,definition=normalpoint,plangrid,
+ base=-10 10 -1 1,args={0 0 0 [0 0 1]},name=monplan,]
+\psProjection[object=texte,
+ fontsize=20,linecolor=red,
+ text=Et que mes printemps soient partis,
+ pos=ul,
+ plan=monplan]%
+\axesIIID(0,0,0)(8,1,1)
+\rput(0,-1.5){\Cadre{\texttt{[pos=ul]}}}
+\end{pspicture}
+\end{center}
+
+\begin{center}
+\psset{unit=.8}
+\begin{pspicture}(-4,-1.5)(4,1.5)
+\psset{solidmemory}
+\psset{lightsrc=10 0 10,viewpoint=50 -90 89.99 rtp2xyz,Decran=50}
+\psSolid[object=plan,definition=normalpoint,plangrid,
+ base=-10 10 -1 1,args={0 0 0 [0 0 1]},name=monplan,]
+\psProjection[object=texte,
+ fontsize=20,linecolor=red,
+ text=J'aimerais tant voir Syracuse,
+ pos=uc,
+ plan=monplan]%
+\axesIIID(0,0,0)(8,1,1)
+\rput(0,-1.5){\Cadre{\texttt{[pos=uc]}}}
+\end{pspicture}
+\end{center}
+
+\begin{center}
+\psset{unit=.8}
+\begin{pspicture}(-4,-1.5)(4,1.5)
+\psset{solidmemory}
+\psset{lightsrc=10 0 10,viewpoint=50 -90 89.99 rtp2xyz,Decran=50}
+\psSolid[object=plan,definition=normalpoint,plangrid,
+ base=-10 10 -1 1,args={0 0 0 [0 0 1]},name=monplan,]
+\psProjection[object=texte,
+ fontsize=20,linecolor=red,
+ text=Pour m'en souvenir \`{a} Paris.,
+ pos=dc,
+ plan=monplan]%
+\axesIIID(0,0,0)(8,1,1)
+\rput(0,-1.5){\Cadre{\texttt{[pos=dc]}}}
+\end{pspicture}
+\end{center}
+
+\subsubsection{Example 4: projection onto $Oxy$ with text rotation}
+
+\begin{LTXexample}[width=8cm]
+\begin{pspicture}(-4,-3)(4,3)
+\psset{solidmemory}
+\psset{lightsrc=10 0 10,
+ viewpoint=50 -90 89.99 rtp2xyz,Decran=50}
+\psSolid[object=plan,definition=normalpoint,plangrid,
+ base=-4 4 -3 3,args={0 0 0 [0 0 1]},name=monplan,]
+\psset{plan=monplan}
+\psProjection[object=texte,
+ fontsize=28.45,linecolor=gray!50,
+ text=Tournez man\`{e}ges]%
+\psProjection[object=texte,
+ fontsize=28.45,linecolor=red,
+ text=Tournez man\`{e}ges,
+ phi=60]%
+\axesIIID(0,0,0)(4,3,1)
+\end{pspicture}
+\end{LTXexample}
+The text rotation is introduced by the parameter \texttt{phi=60}.
+
+\subsubsection{Example 5: positioning text at a point}
+
+\begin{LTXexample}[width=8cm]
+\begin{pspicture}(-4,-3)(4,3)
+\psset{solidmemory}
+\psset{viewpoint=50 -90 89.99 rtp2xyz,Decran=50}
+\psSolid[object=plan,definition=normalpoint,plangrid,
+ base=-4 4 -3 3,args={0 0 0 [0 0 1]},name=monplan,]
+\psset{fontsize=28.45,plan=monplan}
+\psProjection[object=texte,
+ linecolor=green,
+ text=ici](-2,-2)
+\psProjection[object=texte,
+ linecolor=red,
+ text=ou]%
+\psProjection[object=texte,
+ linecolor=blue,
+ text=l\`{a}](2,2)
+\psPoint(0,0,0){O}
+\psPoint(-2,-2,0){O1}
+\psPoint(2,2,0){O2}
+\psdots[dotsize=0.2](O)(O1)(O2)
+\axesIIID(0,0,0)(4,4,1)
+\end{pspicture}
+\end{LTXexample}
+
+\subsection{Examples for projecting onto a face of a solid}
+
+\subsubsection{Method}
+
+The solid must be memorised with the general option
+\texttt{$\backslash$psset$\{$solidmemory$\}$}. The first thing to %$
+do is to find the numbers of the faces of the solid with the
+option \texttt{[numfaces=all]}.
+\begin{LTXexample}[width=8cm]
+\psset{viewpoint=50 20 30 rtp2xyz,Decran=100}
+\begin{pspicture}(-4,-4)(4,4)
+\psSolid[object=cube,a=2,action=draw,
+ linecolor=red,numfaces=all]%
+\axesIIID(1,1,1)(2,2,2)
+\end{pspicture}
+\end{LTXexample}
+
+Then we define the projection plane as the chosen face, where in
+this case we put \texttt{A} on the face with the index number 0:
+
+
+Then we define the projection plane by a chosen face, there we put \texttt{A} on the face with the index number 0:
+\begin{verbatim}
+\psSolid[object=plan,definition=solidface,args=A 0,name=P0]
+\psProjection[object=texte,linecolor=red,text=A,plan=P0]%
+\end{verbatim}
+
+
+\begin{LTXexample}[width=8cm]
+\psset{viewpoint=50 20 30 rtp2xyz,Decran=50}
+\begin{pspicture}(-4,-4)(4,5)
+\psset{unit=0.5}
+\psset{solidmemory}
+\psSolid[object=cube,a=8,action=draw,name=A,linecolor=red]%
+\psset{fontsize=100}
+\psSolid[object=plan,action=none,
+ definition=solidface,args=A 0,name=P0]
+\psProjection[object=texte,linecolor=red,text=A,plan=P0]%
+\psSolid[object=plan,action=none,
+ definition=solidface,args=A 1,name=P1]
+\psProjection[object=texte,linecolor=red,text=B,plan=P1]%
+\psSolid[object=plan,action=none,
+ definition=solidface,args=A 4,name=P4]
+\psProjection[object=texte,linecolor=red,text=E,plan=P4]%
+\axesIIID(4,4,4)(6,6,6)
+\end{pspicture}
+\end{LTXexample}
+
+\subsubsection{Text rotation with the option \texttt{phi}}
+
+\begin{LTXexample}[width=8cm]
+\psset{viewpoint=50 20 30 rtp2xyz,Decran=50}
+\psset{unit=0.4}
+\begin{pspicture}(-8,-7)(4,9)
+\psset{solidmemory}
+\psSolid[object=cube,a=8,action=draw,linecolor=red,name=A]%
+\psset{fontsize=200}
+\psSolid[object=plan,action=none,
+ definition=solidface,args=A 0,name=P0]
+\psProjection[object=texte,linecolor=gray,text=A,plan=P0]%
+\psset{phi=90}
+\psProjection[object=texte,linecolor=red,text=A,plan=P0]%
+\axesIIID(4,4,4)(6,6,6)
+\end{pspicture}
+\end{LTXexample}
+
+
+\subsection{Examples of projecting onto different faces of a solid}
+
+\definecolor{rose}{rgb}{1,0.75,0.74}
+
+\def\JuangJie{%
+\begin{pspicture}(-3.5,-2)(3.5,4)
+\psframe[fillcolor=cyan!50,fillstyle=solid](-3.5,-2)(3.5,4)%
+\psSolid[object=cylindre,r=8,h=0.2,ngrid=1 36,action=draw**,hue=0.5 0.6]%
+\psSolid[object=cube,a=8,h=0.2,ngrid=1 36,action=draw**,color1=magenta!50,
+ color2=red!20,color3=yellow!50,color4=green!50,
+ fcol=0 (color1) 1 (color2) 2 (color3) 3 (color4) 4(White)](0,0,4.2)%
+\psset{solidmemory}%
+\psSolid[object=cube,a=8,
+ name=A,
+ action=none](0,0,4.2)%
+%% la face 0
+\psSolid[object=plan,action=none,definition=solidface,
+ base=-4 4 -4 4,args=A 0,name=P0]%
+%\psSolid[object=plan,definition=plan,action=none,args=P0,planmarks,action=none,]%
+\psset{fontsize=30,plan=P0}%
+\psProjection[object=texte,text=po\`{e}me](0,3)%
+\psProjection[object=texte,text=de](0,2)%
+\psset{fontsize=55}
+\psProjection[object=texte,linecolor=red,text=Juang Jie]
+%% la face 4
+\psSolid[object=plan,action=none,definition=solidface,base=-4 4 -4 4,args=A 4,phi=-90,name=P4]%
+%\psSolid[object=plan,definition=plan,action=none,args=P4,fontsize=10,planmarks,action=none]%
+\psset{fontsize=28.45,pos=bc,plan=P4}
+\psProjection[object=texte,text={Dans ma jeunesse,}](0,3)%
+\psset{fontsize=20}
+\psProjection[object=texte,text=j'\'{e}coutais le son de la pluie](0,2)%
+\psProjection[object=texte,text=dans les maisons de plaisir](0,1)%
+\psProjection[object=texte,text=les tentures frissonnaient]%
+\psProjection[object=texte,text=sous la lumi\`{e}re rouge](0,-1)%
+\psProjection[object=texte,text=des cand\'{e}labres](0,-2)%
+%% la face 1
+\psSolid[object=plan,action=none,definition=solidface,base=-4 4 -4 4,args=A 1,phi=180,name=P1]%
+%\psSolid[object=plan,definition=plan,action=none,args=P1,fontsize=10,planmarks,action=none]%
+\psset{plan=P1}
+\psProjection[object=texte,fontsize=25,text=Dans mon \^{a}ge m\^{u}r](0,3)%
+\psProjection[object=texte,text=j'ai \'{e}cout\'{e} le son de la pluie](0,2)%
+\psProjection[object=texte,fontsize=18,text={en voyage, \`{a} bord d'un bateau}](0,1)%
+\psProjection[object=texte,text=les nuages pesaient bas]%
+\psProjection[object=texte,text=sur l'immensit\'{e} du fleuve](0,-1)%
+\psProjection[object=texte,text=une oie sauvage ](0,-2)%
+\psProjection[object=texte,text=s\'{e}par\'{e}e de ses soeurs](0,-3)%
+%% la face 2
+\psSolid[object=plan,action=none,definition=solidface,base=-4 4 -4 4,args=A 2,phi=180,name=P2]%
+%\psSolid[object=plan,definition=plan,action=none,args=P2,fontsize=10,planmarks,action=none]%
+\psset{plan=P2}
+\psProjection[object=texte,text=appelait dans le vent d'ouest](0,3)%
+\psProjection[object=texte,text={Aujourd'hui,}](0,2)%
+\psProjection[object=texte,text=j'\'{e}coute le son de la pluie](0,1)%
+\psProjection[object=texte,text=sous le charme]%
+\psProjection[object=texte,text=d'un ermitage monastique](0,-1)%
+\psProjection[object=texte,text=Ma t\^{e}te est chenue](0,-2)%
+\psProjection[object=texte,text=chagrins et bonheurs](0,-3)%
+%% la face 3
+\psSolid[object=plan,action=none,definition=solidface,args=A 3,phi=180,name=P3]%
+%\psSolid[object=plan,definition=plan,action=none,args=P3,fontsize=10,planmarks,action=none]%
+\psset{plan=P3}
+\psProjection[object=texte,text=s\'{e}parations et retrouvailles](0,3)%
+\psProjection[object=texte,text=tout est vanit\'{e}](0,2)%
+\psProjection[object=texte,text={Dehors, sur les marches}](0,1)%
+\psProjection[object=texte,text=les gouttes tambourinent]%
+\psProjection[object=texte,text= jusqu'\`{a} l'aube](0,-1)%
+\psProjection[object=texte,text=Juang Jie ](0,-3)%
+\composeSolid
+\end{pspicture}}
+
+\def\MollyBloom{%
+%\psset{lightsrc=-15 -9 5}
+%\psset{viewpoint=20 -150 30 rtp2xyz,Decran=11}
+\psset{solidmemory,visibility}
+%% le plan de base
+\psSolid[object=plan,
+ definition=equation,
+ ngrid=1. 1.,
+ args={[0 0 1 0]},linecolor=red,
+ base=-8 10 -8 8,
+ linecolor=red,
+ name=G]%
+\psset{fontsize=25,,pos=bc,plan=G}
+\psProjection[object=texte,
+ phi=-90,
+ text=le monologue de Molly,
+ pos=bc,
+ ](-5,0)
+\psProjection[object=texte,text=dans Ulysse de James Joyce](1,-5,0)
+\psset{h=1,fillcolor=yellow!50,incolor=rose,hollow}
+\psset{fontsize=20,pos=cc}
+%
+\psSolid[object=ruban,name=ruban1,base=9 8 9 -8]
+\psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
+\psProjection[object=texte,plan=R0,
+ text=O cet effrayant torrent tout au fond O et la mer \'{e}carlate]
+%
+\psSolid[object=ruban,name=ruban1,base=9 -8 -8 -8]
+\psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
+\psProjection[object=texte,plan=R0,
+ text=quelquefois comme du feu et les glorieux couchers de soleil et]
+%
+\psSolid[object=ruban,name=ruban1,base=-8 7 7 7]
+\psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
+\psProjection[object=texte,plan=R0,fontsize=18,
+ text=les ruelles bizarres les maisons roses et bleues et jaunes,]
+%
+\psSolid[object=ruban,name=ruban1,base=7 7 7 -6]
+\psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
+\psProjection[object=texte,plan=R0,
+ text=et les roseraies et les jasmins et les g\'{e}raniums,]
+%
+\psSolid[object=ruban,name=ruban1,base=7 -6 -6 -6]
+\psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
+\psProjection[object=texte,plan=R0,
+ text=et les cactus de Gibraltar quand j'\'{e}tais jeune fille,]
+%
+\psSolid[object=ruban,name=ruban1,base=-6 5 5 5]
+\psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
+\psProjection[object=texte,plan=R0,fontsize=18,
+ text=quand j'ai mis la rose dans mes cheveux,]
+%
+\psSolid[object=ruban,name=ruban1,base=5 5 5 -4]
+\psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
+\psProjection[object=texte,plan=R0,
+ text=comme les filles Andalouses,]
+%
+\psSolid[object=ruban,name=ruban1,base=5 -4 -3 -4]
+\psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
+\psProjection[object=texte,plan=R0,
+ text=ou en mettrai-je une rouge oui,]
+%
+\psSolid[object=ruban,name=ruban1,base=-3 4 3 4]
+\psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
+\psProjection[object=texte,plan=R0,fontsize=18,
+ text=sous le mur mauresque,]
+%
+\psSolid[object=ruban,name=ruban1,base=3 4 3 -2]
+\psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
+\psProjection[object=texte,plan=R0,
+ text=je me suis dit apr\`{e}s,]
+%
+\psSolid[object=ruban,name=ruban1,base=3 -2 -1.5 -2]
+\psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
+\psProjection[object=texte,plan=R0,
+ text=tout aussi bien,]
+%
+\psSolid[object=ruban,name=ruban1,base=-1.5 3 2 3]
+\psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
+\psProjection[object=texte,plan=R0,
+ text=et alors je,]
+\psSolid[object=ruban,name=ruban1,base=-8 -8 -8 7]
+\psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
+\psProjection[object=texte,plan=R0,
+ text=les figuiers dans les jardins de l'Alameda et toutes,]
+%
+\psSolid[object=ruban,name=ruban1,base=-6 -6 -6 5]
+\psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
+\psProjection[object=texte,plan=R0,
+ text=et une Fleur de la montagne oui,]
+%
+\psSolid[object=ruban,name=ruban1,base=-3 -4 -3 4]
+\psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
+\psProjection[object=texte,plan=R0,
+ text=et comme il m'a embrass\'{e}e,]
+%
+\psSolid[object=ruban,name=ruban1,base=-1.5 -2 -1.5 3]
+\psSolid[object=plan,action=none,definition=solidface,args=ruban1 0,name=R0,phi=-90]
+\psProjection[object=texte,plan=R0,
+ text=lui qu'un autre,]
+%
+\composeSolid
+}
+
+We project a poem, verse by verse, onto 4 faces of a cube. It is
+necessary to use the option \texttt{solidmemory} at the beginning
+\begin{verbatim}
+\psset{solidmemory}
+\psSolid[object=cube,a=8,name=A1](0,0,4.2)%
+\end{verbatim}
+of the code. We then define the cube, which is memorised with the
+help of the command \texttt{name=A}:
+
+\begin{verbatim}
+\psset{solidmemory}
+\psProjection[object=texte,text=po\`{e}me,fontsize=30,plan=P0](0,3)%
+\psSolid[object=cube,a=8,name=A](0,0,4.2)%
+\end{verbatim}
+
+The number of each face needs to be known---from a previous run
+of the code with the option \texttt{numfaces=all}. The following
+commands:
+
+
+\begin{verbatim}
+\psSolid[object=plan,action=none,definition=solidface,args=A 0,name=P0]%
+\psProjection[object=texte,text=po\`{e}me,fontsize=30,plan=P0](0,3)%
+\end{verbatim}
+define the plane $P0$ as the oriented plane of the face with index
+number 0 of the solid $A$, before the word \texttt{po\`{e}me} is
+projected onto $P0$, with a font size of 30~pts, to the point with
+coordinates $(0,3)$ (within the coordinate system of that plane).
+We could have changed the orientation of the text to
+\texttt{phi=-90} for example, in the one or other of the commands.
+
+By default, if the face is not visible, its text stays hidden. By
+putting \texttt{visibility} in the options, the text is shown when
+it would otherwise not be, as in the following example.
+
+You must not forget to write \texttt{$\backslash$composeSolid} at
+the end of the text-writing commands for all these lines to be
+taken into account. Any other \texttt{PStricks} command will have
+the usual effect and \verb+composeSolid+ will be unnecessary.
+
+
+
+
+\begin{center}
+\psset{viewpoint=40 20 30 rtp2xyz,Decran=16}
+\JuangJie \hfil
+\psset{viewpoint=40 110 30 rtp2xyz,Decran=16}
+\JuangJie
+\end{center}
+\begin{center}
+\psset{viewpoint=40 200 30 rtp2xyz,Decran=16}
+\JuangJie\hfil
+\psset{viewpoint=40 290 30 rtp2xyz,Decran=16}
+\JuangJie
+\end{center}
+
+
+\begin{center}
+\begin{pspicture}(-8,-6)(8,3)
+\psset{lightsrc=-15 -9 5}
+\psframe(-8,-6)(8,3)
+\psset{viewpoint=20 -150 30 rtp2xyz,Decran=11}\MollyBloom
+\end{pspicture}
+\end{center}
+\begin{center}
+\begin{pspicture}(-8,-6)(8,7)
+\psset{lightsrc=0 0 3}
+\psframe(-8,-6)(8,7)
+\psset{viewpoint=6 -150 89.9 rtp2xyz,Decran=2.8}\MollyBloom
+\end{pspicture}
+\end{center}
+
+\endinput