3 Cette commande prend la forme suivante :
5 \psSurface[options](xmin,ymin)(xmax,ymax){equation de la surface z=f(x,y)}
7 avec comme options possibles les mêmes que dans le cas des solides
8 avec quelques options spécifiques :
10 \item Le maillage de la surface est défini par le paramètre
11 \verb+[ngrid=n1 n2]+, qui possède quelques particularités :
13 \psframebox[fillstyle=solid,fillcolor=yellow,linestyle=none]{%
14 \begin{minipage}{1\linewidth}
16 \item Si \texttt{n1} et/ou \texttt{n2 } sont entiers, ce(s)
17 nombre(s) représente(nt) le nombre de mailles suivant $Ox$ et/ou
19 \item Si \texttt{n1} et/ou \texttt{n2 } sont décimaux, ce(s)
20 nombre(s) représente(nt) le pas d'incrémentation suivant $Ox$
22 \item Si \texttt{[ngrid=n]} ne possède qu'un seul paramètre, alors
23 le nombre de mailles ou, suivant le cas, le pas d'incrémentation
24 sera identique sur les deux axes.
28 \item \textbf{\textdbend{} \texttt{[algebraic]} : cette option
29 permet d'écrire la fonction en notation algébrique, \texttt{pstricks.pro} contient maintenant le code \texttt{AlgToPs}
30 de Dominique Rodriguez qui le permet et qui auparavant était inclus dans \texttt{pstricks-add.pro}. Cette version de \texttt{pstricks}
31 est fournie avec \texttt{pst-solides3d}. Le cas échéant, il faudra inclure le package \texttt{pstricks-add} dans le préambule de votre document.}
32 \item \texttt{[grid]} : par défaut le maillage est activé, si
33 l'option \texttt{[grid]} est écrite, alors le maillage est désactivé~!
34 \item \texttt{[axesboxed]} : cette option permet de tracer un
35 quadrillage 3D de façon semi-automatique, car il convient de placer
36 à la main les bornes de $z$, par défaut cette option est désactivée :
38 \item \texttt{[Zmin]} ;
39 \item \texttt{[Zmax]} ;
40 \item \texttt{[QZ]} : permet de décaler verticalement le repère
41 de la valeur \texttt{[QZ=valeur]} ;
42 \item \texttt{[spotX]} : permet de placer, si le choix fait par
43 défaut n'est pas satisfaisant, les valeurs des graduations sur l'axe
44 des $x$ autour de l'extrémité de la graduation.
45 Cette valeur est celle que l'on indique à la commande \verb+\uput[angle](x,y){donnée}+ ;
46 \item \texttt{[spotY]} : idem ;
47 \item \texttt{[spotZ]} : idem.
50 Si l'option \Cadre{[axesboxed]} ne vous donne pas satisfaction il est
51 possible d'adapter la commande suivante, qui convient au premier
56 \psSolid[object=parallelepiped,a=8,b=8,c=8,action=draw](0,0,0)
57 \multido{\ix=-4+1}{9}{%
58 \psPoint(\ix\space,4,-4){X1}
59 \psPoint(\ix\space,4.2,-4){X2}
60 \psline(X1)(X2)\uput[dr](X1){\ix}}
61 \multido{\iy=-4+1}{9}{%
62 \psPoint(4,\iy\space,-4){Y1}
63 \psPoint(4.2,\iy\space,-4){Y2}
64 \psline(Y1)(Y2)\uput[dl](Y1){\iy}}
65 \multido{\iz=-4+1}{9}{%
66 \psPoint(4,-4,\iz\space){Z1}
67 \psPoint(4,-4.2,\iz\space){Z2}
68 \psline(Z1)(Z2)\uput[l](Z1){\iz}}
71 %L'option \Cadre{[hue=0 1]} permet de remplir les facettes avec des dégradés
73 \section{Exemple 1 : selle de cheval}
74 \begin{LTXexample}[pos=t,numbersep=1em]
76 \psset{viewpoint=50 40 30 rtp2xyz,Decran=50}
77 \psset{lightsrc=viewpoint}
78 \begin{pspicture}(-6,-7)(7,7)
79 \psSurface[ngrid=.25 .25,incolor=yellow,
80 linewidth=0.5\pslinewidth,axesboxed,
81 algebraic,hue=0 1](-4,-4)(4,4){%
86 \section{Exemple 2 : selle de cheval sans maillage}
88 Les lignes du maillage sont supprimées en écrivant dans les options :
90 \begin{LTXexample}[pos=t,numbersep=1em]
92 \psset{lightsrc=30 30 25}
93 \psset{viewpoint=50 40 30 rtp2xyz,Decran=50}
94 \begin{pspicture}(-6,-8)(7,8)
95 \psSurface[fillcolor=red!50,ngrid=.25 .25,
96 incolor=yellow,linewidth=0.5\pslinewidth,
97 grid,axesboxed](-4,-4)(4,4){%
98 y dup mul x dup mul sub 4 div }
104 \section{Exemple 3 : paraboloïde}
106 \begin{LTXexample}[pos=t,numbersep=1em]
108 \psset{lightsrc=30 -10 10,linewidth=0.5\pslinewidth}
109 \psset{viewpoint=50 40 30 rtp2xyz,Decran=50}
110 \begin{pspicture}(-6,-4)(7,12)
111 \psSolid[object=grille,base=-4 4 -4 4,action=draw]%
114 intersectionplan={[0 0 1 -5]},
115 intersectioncolor=(bleu),
116 intersectionlinewidth=3,
118 ngrid=.25 .25,incolor=yellow,
119 axesboxed,Zmin=0,Zmax=8,QZ=4](-4,-4)(4,4){%
120 y dup mul x dup mul add 4 div }
127 \begin{LTXexample}[pos=t,numbersep=1em]
129 \psset{lightsrc=30 -10 10}
130 \psset{viewpoint=50 20 30 rtp2xyz,Decran=70}
131 \begin{pspicture}(-7,-8)(7,8)
132 \psSurface[ngrid=.2 .2,algebraic,axesboxed,Zmin=-1,Zmax=1,
133 linewidth=0.5\pslinewidth,spotX=r,spotY=d,spotZ=l,
134 hue=0 1](-5,-5)(5,5){%
142 Dans cet exemple, on montre comment colorier les facettes chacune avec
143 une teinte différente en utilisant directement le code
145 \begin{LTXexample}[pos=t,numbersep=1em]
147 \psset{lightsrc=30 -10 10}
148 \psset{viewpoint=100 20 20 rtp2xyz,Decran=80}
149 \begin{pspicture}(-6,-12)(7,14)
150 \psSurface[ngrid=0.4 0.4,algebraic,axesboxed,Zmin=-2,Zmax=10,QZ=4,
151 linewidth=0.25\pslinewidth,
153 {/iF ED iF [iF 4225 div 0.75 1] (sethsbcolor) astr2str} for
155 10*sin(sqrt((x^2+y^2)))/(sqrt(x^2+y^2)) }
161 \section{Exemple 6 : paraboloïde hyperbolique d'équation $z = xy$}
163 Dans cet exemple, on combine le tracé de la surface et celui des
164 contours de l'intersection du paraboloïde avec les plans $z=4$ et
166 Pour cela on utilise \verb+\psSolid[object=courbe]+.
168 \defFunction{F}(t){t}{4 t div 4 min}{4}
169 \psSolid[object=courbe,range=1 4,
170 linecolor=red,linewidth=2\pslinewidth,
173 On notera l'utilisation de deux fonctions \texttt{min} et
174 \texttt{max}, qui permettent à partir d'un couple de valeurs,
175 d'extraire la plus petite ou la plus grande.
178 \psset{viewpoint=50 20 30 rtp2xyz,Decran=50}
179 \psset{lightsrc=viewpoint,linewidth=0.5\pslinewidth}
180 \begin{pspicture}(-6,-7)(7,7)
181 \psSolid[object=datfile,file=paraboloid,hue=0 1 0.5 1,incolor=yellow]
182 \gridIIID[Zmin=-4,Zmax=4,spotX=r](-4,4)(-4,4)
183 \defFunction{F}(t){t}{4 t div 4 min}{4}
184 \psSolid[object=courbe,range=1 4,r=0,
185 linecolor=red,linewidth=2\pslinewidth,
187 \defFunction{G}(t){t}{4 t div -4 max}{4}
188 \psSolid[object=courbe,range=-1 -4,r=0,
189 linecolor=red,linewidth=2\pslinewidth,
191 \defFunction{H}(t){t neg}{4 t div -4 max}{-4}
192 \psSolid[object=courbe,range=-1 -4,r=0,
193 linecolor=red,linewidth=2\pslinewidth,
199 \psSurface[hue=0 1,ngrid=.2 .5,incolor=yellow,axesboxed,
200 Zmin=-4,Zmax=4,spotX=r](-4,-4)(4,4){x y mul 4 min -4 max}
205 \section{Exemple 8 : surface d'équation $z = xy(x^2+y^2)$}
207 \begin{LTXexample}[pos=t,numbersep=1em]
209 \psset{lightsrc=10 12 20,linewidth=0.5\pslinewidth}
210 \psset{viewpoint=30 50 60 rtp2xyz,Decran=50}
211 \begin{pspicture}(-10,-10)(10,10)
213 fillcolor=cyan!50,algebraic,axesboxed,
214 ngrid=.25 .25,incolor=yellow,hue=0 1,
215 Zmin=-3,Zmax=3](-3,-3)(3,3){%