Initialisation du projet pst-solides3d.git (SVN revision 142)
[pst-solides3d.git] / doc / par-surfaces.tex
1 \section{Présentation}
2
3 Cette commande prend la forme suivante :
4 \begin{verbatim}
5 \psSurface[options](xmin,ymin)(xmax,ymax){equation de la surface z=f(x,y)}
6 \end{verbatim}
7 avec comme options possibles les mêmes que dans le cas des solides
8 avec quelques options spécifiques :
9 \begin{itemize}
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 :
12
13 \psframebox[fillstyle=solid,fillcolor=yellow,linestyle=none]{%
14 \begin{minipage}{1\linewidth}
15 \begin{itemize}
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
18 $Oy$.
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$
21 et/ou $Oy$.
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.
25 \end{itemize}
26 \end{minipage}
27 }
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 :
37 \begin{itemize}
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.
48 \end{itemize}
49 \end{itemize}
50 Si l'option \Cadre{[axesboxed]} ne vous donne pas satisfaction il est
51 possible d'adapter la commande suivante, qui convient au premier
52 exemple :
53 \begin{gbar}
54 \small
55 \begin{verbatim}
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}}
69 \end{verbatim}
70 \end{gbar}
71 %L'option \Cadre{[hue=0 1]} permet de remplir les facettes avec des dégradés
72 %de couleur.
73 \section{Exemple 1 : selle de cheval}
74 \begin{LTXexample}[pos=t,numbersep=1em]
75 \psset{unit=0.75}
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){%
82 ((y^2)-(x^2))/4 }
83 \end{pspicture}
84 \end{LTXexample}
85 %\newpage
86 \section{Exemple 2 : selle de cheval sans maillage}
87
88 Les lignes du maillage sont supprimées en écrivant dans les options :
89 \verb+grid+.
90 \begin{LTXexample}[pos=t,numbersep=1em]
91 \psset{unit=0.75}
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 }
99 \end{pspicture}
100 \end{LTXexample}
101
102 %\newpage
103
104 \section{Exemple 3 : paraboloïde}
105
106 \begin{LTXexample}[pos=t,numbersep=1em]
107 \psset{unit=0.75}
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]%
112 \psSurface[
113 fillcolor=cyan!50,
114 intersectionplan={[0 0 1 -5]},
115 intersectioncolor=(bleu),
116 intersectionlinewidth=3,
117 intersectiontype=0,
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 }
121 \end{pspicture}
122 \end{LTXexample}
123
124 %\newpage
125
126 \section{Exemple 4}
127 \begin{LTXexample}[pos=t,numbersep=1em]
128 \psset{unit=0.75}
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){%
135 sin((x^2+y^2)/3) }
136 \end{pspicture}
137 \end{LTXexample}
138
139 %\newpage
140
141 \section{Exemple 5}
142 Dans cet exemple, on montre comment colorier les facettes chacune avec
143 une teinte différente en utilisant directement le code
144 \texttt{postscript}.
145 \begin{LTXexample}[pos=t,numbersep=1em]
146 \psset{unit=0.5}
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,
152 fcol=0 1 4225
153 {/iF ED iF [iF 4225 div 0.75 1] (sethsbcolor) astr2str} for
154 ](-13,-13)(13,13){%
155 10*sin(sqrt((x^2+y^2)))/(sqrt(x^2+y^2)) }
156 \end{pspicture}
157 \end{LTXexample}
158
159 %\newpage
160
161 \section{Exemple 6 : paraboloïde hyperbolique d'équation $z = xy$}
162
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
165 $z=-4$.
166 Pour cela on utilise \verb+\psSolid[object=courbe]+.
167 \begin{verbatim}
168 \defFunction{F}(t){t}{4 t div 4 min}{4}
169 \psSolid[object=courbe,range=1 4,
170 linecolor=red,linewidth=2\pslinewidth,
171 function=F]
172 \end{verbatim}
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.
176 \begin{center}
177 \psset{unit=0.75}
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,
186 function=F]
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,
190 function=G]
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,
194 function=H]
195 \end{pspicture}
196 \end{center}
197 \begin{gbar}
198 \begin{verbatim}
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}
201 \end{verbatim}
202 \end{gbar}
203 %\newpage
204
205 \section{Exemple 8 : surface d'équation $z = xy(x^2+y^2)$}
206
207 \begin{LTXexample}[pos=t,numbersep=1em]
208 \psset{unit=0.5}
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)
212 \psSurface[
213 fillcolor=cyan!50,algebraic,axesboxed,
214 ngrid=.25 .25,incolor=yellow,hue=0 1,
215 Zmin=-3,Zmax=3](-3,-3)(3,3){%
216 x*y*(x^2-y^2)*0.1}
217 \end{pspicture}
218 \end{LTXexample}

Licence Creative Commons Les fichiers de Syracuse sont mis à disposition (sauf mention contraire) selon les termes de la
Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.