summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/pst-solides3d/doc/par-projectiontexte.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/generic/pst-solides3d/doc/par-projectiontexte.tex')
-rw-r--r--Master/texmf-dist/doc/generic/pst-solides3d/doc/par-projectiontexte.tex622
1 files changed, 622 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-solides3d/doc/par-projectiontexte.tex b/Master/texmf-dist/doc/generic/pst-solides3d/doc/par-projectiontexte.tex
new file mode 100644
index 00000000000..4c25955b1bd
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-solides3d/doc/par-projectiontexte.tex
@@ -0,0 +1,622 @@
+\section {Texte}
+
+L'objet \Cadre{\texttt{texte}} de la macro \verb+\psProjection+ permet
+de projeter des chaînes de caractères sur des plans quelconques.
+
+\subsection {Les paramètres et les options}
+
+Il y a $3$ paramètres : \Cadre{\texttt{[text]}} qui définit la chaîne à afficher,
+\Cadre{\texttt{[fontsize]}}, qui donne la taille de la fonte en
+points (rappelons qu'une taille de 28,45~pts correspond à 1~cm), et
+enfin \Cadre{\texttt{[pos]}}, qui définit la position
+du texte par rapport au point visé. Par défaut le texte est centré sur
+l'origine du plan.
+
+Ce dernier paramètre nécessite un peu d'explications. Considérons la
+chaîne de caractères \texttt{petit texte} représentée ci-dessous.
+\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}
+
+Nous avons $4$~lignes horizontales de références~: la ligne
+inférieure \verb+(d)own+, la ligne de base \verb+(b)aseline+, la
+ligne médiane, ou ligne centrale \verb+(c)enter+, et la ligne
+supérieure \verb+(u)p+.
+
+Il y a également $4$~lignes de référence sur l'axe vertical~: la ligne
+de gauche \verb+(l)eft+, la ligne de base \verb+(b)aseline+, la ligne
+centrale \verb+(c)enter+ et la ligne de droite \verb+(r)ight+. Dans le
+cas d'une chaîne de caractère, les $2$ lignes verticales \verb+l+ et
+\verb+b+ sont confondues.
+
+L'intersection de ces $4$ lignes horizontales avec ces $4$ lignes
+verticales nous donne $16$~points appelés
+\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+.
+
+Parmi ceux-ci, $4$~sont considérés comme \textsl {points
+intérieurs\/}~: \verb+bb+, \verb+bc+, \verb+cb+ et \verb+cc+.
+
+Lorsque le paramètre \verb+[pos]+ de \verb+\psProjection+ est affecté à
+l'un de ces $4$~points, cela signifie que ce dernier doit être
+positionné au point d'origine du plan de projection.
+
+Lorsque le paramètre \verb+[pos]+ de \verb+\psProjection+ est affecté à
+l'un des $12$~points restant, cela indique une direction dans laquelle
+doit être positionné le texte par rapport au point d'origine du plan
+de projection.
+
+Par exemple, \verb+\psProjection[...,pos=uc](0,0)+ indique que le
+texte doit être centré par rapport au point $(0,0)$ et affiché
+au-dessus.
+
+%% Le plan doit être défini par son origine
+%% \Cadre{$\mathtt{(x_0ny_0,z_0)}$} et la normale
+%% \Cadre{\texttt{[normal=1 0 0 90]}}. Pour les particularités
+%% de la définition de la normale, car il y a trois façons de le faire !
+%% Tous les dé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 être fixée en points avec l'option
+%% . .
+
+
+\subsection {Exemples de projetés sur un plan quelconque}
+
+\subsubsection {Exemple 1 : projection sur Oxy, avec l'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 90 rtp2xyz,Decran=50}
+\psSolid[object=plan,definition=normalpoint,plangrid,
+ base=-4 4 -1 1,args={0 0 0 [0 0 1 90]},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{Exemple 2 : projection Oxy, texte centré}
+
+\begin{LTXexample}[width=8cm]
+\begin{pspicture}(-4,-1.5)(4,1.5)
+\psset{solidmemory}
+\psset{lightsrc=10 0 10,
+ viewpoint=50 -90 90 rtp2xyz,Decran=50}
+\psSolid[object=plan,definition=normalpoint,plangrid,
+ base=-4 4 -1 1,args={0 0 0 [0 0 1 90]},name=monplan,]
+\psProjection[object=texte,
+ fontsize=20,linecolor=red,
+ text= L'île de Pâques et Kairouan,
+ plan=monplan]%
+\axesIIID(0,0,0)(4,2,1)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsubsection {Exemple 3 : projection Oxy, avec différentes 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 90 rtp2xyz,Decran=50}
+\psSolid[object=plan,definition=normalpoint,plangrid,
+ base=-10 10 -1 1,args={0 0 0 [0 0 1 90]},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 90 rtp2xyz,Decran=50}
+\psSolid[object=plan,definition=normalpoint,plangrid,
+ base=-10 10 -1 1,args={0 0 0 [0 0 1 90]},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 90 rtp2xyz,Decran=50}
+\psSolid[object=plan,definition=normalpoint,plangrid,
+ base=-10 10 -1 1,args={0 0 0 [0 0 1 90]},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 90 rtp2xyz,Decran=50}
+\psSolid[object=plan,definition=normalpoint,plangrid,
+ base=-10 10 -1 1,args={0 0 0 [0 0 1 90]},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 90 rtp2xyz,Decran=50}
+\psSolid[object=plan,definition=normalpoint,plangrid,
+ base=-10 10 -1 1,args={0 0 0 [0 0 1 90]},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 90 rtp2xyz,Decran=50}
+\psSolid[object=plan,definition=normalpoint,plangrid,
+ base=-10 10 -1 1,args={0 0 0 [0 0 1 90]},name=monplan,]
+\psProjection[object=texte,
+ fontsize=20,linecolor=red,
+ text=Pour m'en souvenir à 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 {Exemple 4 : projection Oxy avec rotation du texte}
+
+\begin{LTXexample}[width=8cm]
+\begin{pspicture}(-4,-3)(4,3)
+\psset{solidmemory}
+\psset{lightsrc=10 0 10,
+ viewpoint=50 -90 90 rtp2xyz,Decran=50}
+\psSolid[object=plan,definition=normalpoint,plangrid,
+ base=-4 4 -3 3,args={0 0 0 [0 0 1 90]},name=monplan,]
+\psset{plan=monplan}
+\psProjection[object=texte,
+ fontsize=28.45,linecolor=gray!50,
+ text=Tournez manèges]%
+\psProjection[object=texte,
+ fontsize=28.45,linecolor=red,
+ text=Tournez manèges,
+ phi=60]%
+\axesIIID(0,0,0)(4,3,1)
+\end{pspicture}
+\end{LTXexample}
+La rotation du texte s'introduit avec le paramètre \Cadre{\texttt{phi=60}}.
+
+\subsubsection{Exemple 5 : positionnement du texte en un point quelconque}
+
+\begin{LTXexample}[width=8cm]
+\begin{pspicture}(-4,-3)(4,3)
+\psset{solidmemory}
+\psset{viewpoint=50 -90 90 rtp2xyz,
+ Decran=50}
+\psSolid[object=plan,definition=normalpoint,plangrid,
+ base=-4 4 -3 3,args={0 0 0 [0 0 1 90]},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à](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{Exemples de projections sur une face d'un solide}
+
+\subsubsection {Méthode}
+
+Le solide doit être mémorisé avec l'option générale
+\Cadre{$\backslash$psset$\{$solidmemory$\}$}. La première chose à faire est de
+repérer les numéros des faces du solide
+avec l'option \Cadre{\texttt{[numfaces=all]}}.
+\begin{LTXexample}[width=8cm]
+\psset{viewpoint=50 20 30 rtp2xyz,Decran=100}
+\begin{pspicture}(-4,-4)(4,4)
+\psframe(-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}
+
+Puis on définit le plan de projection par la face choisie, ici on affiche
+\Cadre{\texttt{A}} sur la face de numéro $0$~:
+\begin{gbar}
+\begin{verbatim}
+\psSolid[object=plan,definition=solidface,args=A 0,name=P0]
+\psProjection[object=texte,linecolor=red,text=A,plan=P0]%
+\end{verbatim}
+\end{gbar}
+
+\begin{LTXexample}[width=8cm]
+\psset{viewpoint=50 20 30 rtp2xyz,Decran=50}
+\begin{pspicture}(-3,-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 {Rotation du texte avec l'option \texttt{phi}}
+
+\begin{LTXexample}[width=8cm]
+\psset{viewpoint=50 20 30 rtp2xyz,Decran=50}
+\psset{unit=0.5}
+\begin{pspicture}(-3,-4)(4,5)
+\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{Exemples de projections sur différentes faces d'un solide}
+
+\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è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'é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ère rouge](0,-1)%
+\psProjection[object=texte,text=des candé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 âge mûr](0,3)%
+\psProjection[object=texte,text=j'ai écouté le son de la pluie](0,2)%
+\psProjection[object=texte,fontsize=18,text={en voyage, à bord d'un bateau}](0,1)%
+\psProjection[object=texte,text=les nuages pesaient bas]%
+\psProjection[object=texte,text=sur l'immensité du fleuve](0,-1)%
+\psProjection[object=texte,text=une oie sauvage ](0,-2)%
+\psProjection[object=texte,text=séparé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'é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ê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éparations et retrouvailles](0,3)%
+\psProjection[object=texte,text=tout est vanité](0,2)%
+\psProjection[object=texte,text={Dehors, sur les marches}](0,1)%
+\psProjection[object=texte,text=les gouttes tambourinent]%
+\psProjection[object=texte,text= jusqu'à 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 é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é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'é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è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,]
+%
+\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
+}
+
+
+Nous projetons un poème, vers après vers, sur 4 faces d'un cube.
+Il est nécessaire de passer l'option \Cadre{solidmemory} au début des
+commandes. On définit ensuite le cube, que l'on mémorise à l'aide de la
+commande \Cadre{name=A}~:
+\begin{verbatim}
+\psset{solidmemory}
+\psSolid[object=cube,a=8,name=A1](0,0,4.2)%
+\end{verbatim}
+
+Le numéro de chaque face ayant été repéré dans un essai préalable avec
+l'option \Cadre{numfaces=all}, les commandes suivantes~:
+\begin{verbatim}
+\psSolid[object=plan,action=none,definition=solidface,args=A 0,name=P0]%
+\psProjection[object=texte,text=poème,fontsize=30,plan=P0](0,3)%
+\end{verbatim}
+définissent tout d'abord le plan $P0$ comme étant le plan orienté défini par la face
+d'indice $0$ du solide $A$, avant de demander
+l'impression du mot \texttt{poème} sur le plan $P0$, avec une fonte de
+taille \Cadre{30~pts}, au point de coordonnées \Cadre{(0,3)} (dans le
+repère lié à ce plan). On aurait pu changer l'orientation du texte
+avec \Cadre{phi=-90} par exemple, dans l'une ou l'autre de ces commandes.
+
+Par défaut, si la face n'est pas visible le texte reste caché. En
+écrivant \Cadre{visibility} dans les options, le texte apparaîtra
+même s'il est caché comme dans l'exemple suivant.
+
+On n'oubliera pas d'écrire à la fin des commandes d'écriture des
+textes\Cadre{$\backslash$composeSolid}, pour que tous ces tracés
+soient pris en compte.
+Toute autre commande de \texttt{PStricks} aura le même effet et
+\verb+composeSolid+ sera superflu.
+
+\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 90 rtp2xyz,Decran=2.8}\MollyBloom
+\end{pspicture}
+\end{center}