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)
{%