\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}