\section{Définition du maillage}

L'utilisateur peut spécifier le maillage du solide avec l'option
\Cadre{[ngrid]} dans la commande \verb+\psSolid+.

Pour les objets
\verb+cube+,
\verb+prisme+,
\verb+prismecreux+,
la syntaxe est \Cadre{[ngrid=$n_1$]} où $n_1$ représente le
nombre de mailles sur l'axe vertical.

Pour les objets
\verb+sphere+,
\verb+cylindre+,
\verb+cylindrecreux+,
\verb+cone+,
\verb+conecreux+,
\verb+tronccone+,
\verb+troncconecreux+,
\verb+tore+,
%%\verb+tore+,
la syntaxe est \hfill \break
\Cadre{[ngrid=$n_1$~$n_2$]} où $n_1$ est
entier supérieur ou égal à 1 (à $2$ pour \verb+tore+) représentant le
nombre de mailles sur l'axe vertical, et $n_2$ est un entier
représentant le nombre de divisions sur le cercle.

Pour les objets
\verb+grille+,
\verb+surface+,
\verb+surface*+,
\verb+surfaceparametree+,
la syntaxe est \Cadre{[ngrid=$n_1$~$n_2$]} où $n_1$ et $n_2$ peuvent
être réels ou entiers. Le nombre $n_1$ se rapporte à l'axe $Ox$ et
$n_2$ se rapporte à l'axe $Oy$. 
Si $n_2$ est absent, on considère que $n_2 = n_1$.

Si $n_1$ est entier, il représente le nombre de mailles sur l'axe
$Ox$. S'il est réel, il représente le pas de maillage sur l'axe
$Ox$. Par exemple, le nombre codé \verb+1+ est entier, alors que celui
codé \verb+1.+ est réel (noter le point).


Voici quelques exemples~:

\subsection {La grille}

\begin{multicols}{2}
\psset{viewpoint=50 50 20 rtp2xyz,Decran=30}
\begin{pspicture}(-4.5,-1.5)(2.5,2.5)
\psframe(-3.5,-1.5)(2.5,2.5)
\psSolid[object=grille,
   ngrid=1,
   base=0 4 -3 3,
   linecolor=gray](0,0,0)
\axesIIID(0,0,0)(3,3,3)
\end{pspicture}

\columnbreak

\begin{verbatim}
\psSolid[object=grille,
   ngrid=1,
   base=0 4 -3 3,
   linecolor=gray](0,0,0)
\end{verbatim}
\end{multicols}

\begin{multicols}{2}
\psset{viewpoint=50 50 20 rtp2xyz,Decran=30}
\begin{pspicture}(-4.5,-1.5)(2.5,2.5)
\psframe(-3.5,-1.5)(2.5,2.5)
\psSolid[object=grille,
   ngrid=1. 1,
   base=0 4 -3 3,
   linecolor=gray](0,0,0)
\axesIIID(0,0,0)(3,3,3)
\end{pspicture}

\columnbreak

\begin{verbatim}
\psSolid[object=grille,
   ngrid=1. 1,
   base=0 4 -3 3,
   linecolor=gray](0,0,0)
\end{verbatim}
\end{multicols}

\subsection {Le cube}

\begin{center}
\psset{unit=0.5}
\begin{pspicture}(-7,-7)(7,7)
\psframe(-7,-7)(7,7)
\psset[pst-solides3d]{viewpoint=50 40 20,Decran=50,lightsrc=10 10 10}
\psSolid[a=8,object=cube,ngrid=4,fillcolor=yellow]%
%\psSolid[a=8,object=cube,linewidth=2pt,action=draw]%
\psPoint(0,0,0){O}
%\uput[r](O){$O$}
\psPoint(0,0,4){Ak}
\psPoint(0,0,8){Az}
\uput[u](Az){$z$}
\psPoint(4,0,0){Ai}
\psPoint(8,0,0){Ax}
\uput[u](Ax){$x$}
\psPoint(0,4,0){Aj}
\psPoint(0,8,0){Ay}
\uput[dr](Ay){$y$}
\psPoint(4,-4,0){A1}
\psPoint(4,4,0){A2}
\psPoint(-4,4,0){A3}
\psPoint(-4,-4,0){A4}
\uput[dr](Ay){$y$}
%\psline[linestyle=dashed](O)(Ai)
%\psline[linestyle=dashed](O)(Aj)
%\psline[linestyle=dashed](O)(Ak)
\psline[linecolor=green,arrowsize=2mm,arrowinset=0.2]{->}(Aj)(Ay)
\psline[linecolor=blue,arrowsize=2mm,arrowinset=0.2]{->}(Ai)(Ax)
\psline[linecolor=red,arrowsize=2mm,arrowinset=0.2]{->}(Ak)(Az)
\psdot[linecolor=green](Aj)
\psdot[linecolor=blue](Ai)
\psdot[linecolor=red](Ak)
\end{pspicture}
\hfill
\begin{pspicture}(-7,-7)(7,7)
\psframe(-7,-7)(7,7)
\psset[pst-solides3d]{viewpoint=50 45 10 rtp2xyz,Decran=40,lightsrc=30 45 0}
\psSolid[a=8,object=cube,ngrid=3,fcol=\colorfaces,RotY=45,RotX=30,RotZ=20]%
\end{pspicture}
\end{center}
\begin{multicols}{2}

Pour le premier exemple, le maillage des faces est fixé à $4\times4$
facettes/face et la commande est la suivante~:
\begin{verbatim}
\psSolid[a=8,object=cube,ngrid=4,
         fillcolor=yellow]%
\end{verbatim}
Dans le deuxième exemple, le maillage des faces est fixé à $3\times3$
et les couleurs des facettes sont diverses. On utilise le package
\texttt{arrayjob} pour stocker les couleurs :
\begin{verbatim}
\newarray\colors
\readarray{colors}{%
Apricot&Aquamarine%
etc.}
\end{verbatim}
Puis la liste des couleurs à afficher est donnée par la commande :
\begin{verbatim}
\edef\colorfaces{}%
\multido{\i=0+1}{67}{%
 \checkcolors(\i)
\xdef\colorfaces{%
     \colorfaces\i\space(\cachedata)\space}
     }
\end{verbatim}
On place l'option~:~\verb+fcol=\colorfaces+.
Le cube maillé est appelé par :
\begin{verbatim}
\psSolid[a=8,object=cube,ngrid=3,%
        fcol=\colorfaces,
        RotY=45,RotX=30,RotZ=20]%
\end{verbatim}
L'option \texttt{[grid]} permet, éventuellement, de ne pas
tracer les traits du quadrillage.
\end{multicols}

\newpage

\subsection {La sphère}

\begin{multicols}{2}
\setlength{\columnseprule}{1pt}
\psset{unit=0.5}
\centerline{
\begin{pspicture}(-5,-5)(5,5)
\psframe(-5,-5)(5,5)
\psset{Decran=35}
\psset{color1=cyan,color2=red}
\psSolid[
   fcol=251 (OliveGreen) 232 (color1) 214 (color2),
   object=sphere,
   ngrid=16 18,
   RotX=180,RotZ=30
]%
\end{pspicture}}
%
\begin{verbatim}
\psset{color1=cyan,color2=red}
   fcol=251 (OliveGreen) 232 (color1) 214 (color2),
   object=sphere,
   ngrid=16 18,
   RotX=180,RotZ=30
]%
\end{verbatim}
\columnbreak
\centerline{
\begin{pspicture}(-5,-5)(5,5)
\psframe(-5,-5)(5,5)
\psset{Decran=35}
\psset{color1=cyan,color2=red}
\psSolid[
   action=draw*,
   fcol=0 (OliveGreen) 2 (color1) 3 (color2),
   object=sphere,
   ngrid=4 4,
   RotX=180,RotZ=30
]%
\end{pspicture}}
\begin{verbatim}
\psset{color1=cyan,color2=red}
\psSolid[
   action=draw*,
   fcol=0 (OliveGreen) 2 (color1) 3 (color2),
   object=sphere,
   ngrid=4 4,
   RotX=180,RotZ=30
]%
\end{verbatim}
\end{multicols}

\subsection {Cylindres}
\begin{multicols}{2}
\psset{unit=0.5}
\setlength{\columnseprule}{1pt}
\centerline{
\begin{pspicture}(-5,-5)(5,5)
\psframe(-5,-5)(5,5)
\psset{Decran=20}
\psset{color1=cyan,color2=red}
\psSolid[
   fcol=0 (OliveGreen) 2 (color1) 3 (color2),
   h=5,r=2,
   object=cylindrecreux,
   ngrid=4 30,
   RotZ=30
](0,0,-2.5)
\end{pspicture}}
\columnbreak
\begin{verbatim}
\psset{color1=cyan,color2=red}
\psSolid[
   fcol=0 (OliveGreen) 2 (color1) 3 (color2),
   h=5,r=2,
   object=cylindrecreux,
   ngrid=4 30,
   RotZ=30
    ](0,0,-2.5)
\end{verbatim}
\end{multicols}
%
\begin{multicols}{2}
\psset{unit=0.5}
\setlength{\columnseprule}{1pt}
\centerline{
\begin{pspicture}(-5,-5)(5,5)
\psframe(-5,-5)(5,5)
\psset{Decran=20}
\psset{color1=cyan,color2=red}
\psSolid[
   action=draw*,
   fcol=0 (OliveGreen) 2 (color1) 3 (color2),
   h=5,r=2,
   object=cylindre,
   ngrid=2 12,
   RotY=-20
](0,0,-2.5)
\end{pspicture}}
\columnbreak
\begin{verbatim}
\psset{color1=cyan,color2=red}
\psSolid[
   action=draw*,
   fcol=0 (OliveGreen) 2 (color1) 3 (color2),
   object=cylindre,
   ngrid=2 12,
   RotY=-20
    ](0,0,-2.5)
\end{verbatim}
\end{multicols}

%\newpage

\subsection{Tore}
\begin{multicols}{2}
\setlength{\columnseprule}{1pt}
\psset{unit=0.5}
\centerline{
 \begin{pspicture}(-5,-5)(5,5)
% \psframe(-2,-2)(2,2)
 \psset{Decran=20}
 \psSolid[r1=2.5,r0=1.5,object=tore,ngrid=4 36, fillcolor=green!30,action=draw**]%
  \axesIIID(4,4,0)(5,5,4)
 \end{pspicture}}
\columnbreak
\begin{verbatim}
 \psSolid[r1=2.5,r0=1.5,
         object=tore,
         ngrid=4 36,
         fillcolor=green!30,
         action=draw**]%
\end{verbatim}
\end{multicols}
%
\begin{multicols}{2}
\setlength{\columnseprule}{1pt}
\psset{unit=0.5}
\centerline{
 \begin{pspicture}(-5,-5)(5,5)
% \psframe(-2,-2)(2,2)
 \psset{Decran=20}
 \psSolid[r1=3.5,r0=1,object=tore,ngrid=9 18,fillcolor=magenta!30,action=draw**]%
  \axesIIID(4.5,4.5,0)(5,5,4)
 \end{pspicture}}
\columnbreak
\begin{verbatim}
 \psSolid[r1=3.5,r0=1,
          object=tore,
          ngrid=9 18,
          fillcolor=magenta!30,
          action=draw**]%
\end{verbatim}
\end{multicols}
