Initialisation du projet pst-solides3d.git (SVN revision 142)
[pst-solides3d.git] / doc / par-surfacesparametrees.tex
1 \section{Les surfaces paramétrées}
2 \subsection{Méthode}
3 Les surfaces paramétrées écrites sous la forme $[x(u,v),y(u,v),z(u,v)]$
4 seront gérées grâce à la commande \verb+\psSolid+ par l'option
5 \Cadre{object=surfaceparametree} et définies soit en \textit{notation
6 polonaise inverse} (\texttt{RPN}, \textit{Reverse Polish Notation})~:
7
8 {\red
9 \begin{verbatim}
10 \defFunction{shell}(u,v){1.2 v exp u Sin dup mul v Cos mul mul}% x(u,v)
11 {1.2 v exp u Sin dup mul v Sin mul mul}% y(u,v)
12 {1.2 v exp u Sin u Cos mul mul} %z(u,v)
13 \end{verbatim}
14 }
15 soit en \textit{notation algébrique} :
16 {\red
17 \begin{verbatim}
18 \defFunction[algebraic]{shell}(u,v){1.2^v*(sin(u)^2*cos(v))}% x(u,v)
19 {1.2^v*(sin(u)^2*sin(v))}% y(u,v)
20 {1.2^v*(sin(u)*cos(u))} %z(u,v)
21 \end{verbatim}
22 }
23 Les plages de valeurs pour $u$ et $v$ sont définies dans l'option
24 \Cadre{range=$\mathtt{u_{min}}$ $\mathtt{u_{max}}$ $\mathtt{v_{min}}$
25 $\mathtt{v_{max}}$}. %$
26
27 Le tracé de la fonction est activé par
28 \Cadre{function=nom\_de\_la\_fonction}, ce nom a été précisé lorsque les
29 équations paramétriques ont été écrites :
30 \verb+\defFunction{nom_de_la_fonction}...+
31
32 Tout autre choix que $u$ et $v$ est acceptable. Rappelons que l'argument de
33 \Cadre{Sin} et \Cadre{Cos} doit être en radians et celui de \Cadre{sin} et
34 \Cadre{cos} en degrés si vous utilisez la \textit{RPN}. En notation
35 algébrique, l'argument est en radians.
36
37
38 \subsection{Exemple 1 : dessin d'un coquillage}
39 \newcommand\quadrillage{%
40 \psset{linecolor={[cmyk]{1,0,1,0.5}}}\green
41 \multido{\ix=-4+1}{9}{%
42 \psPoint(\ix\space,4,-3){X1}
43 \psPoint(\ix\space,4 .2 add,-3){X2}
44 \psline(X1)(X2)
45 \uput[-120](X1){\small\ix}}
46 \multido{\iy=-4+1}{9}{%
47 \psPoint(-4,\iy\space,-3){Y1}
48 \psPoint(-4 .2 sub,\iy\space,-3){Y2}
49 \psline(Y1)(Y2)
50 \uput[0](Y1){\small\iy}}
51 \multido{\iz=-3+1}{7}{%
52 \psPoint(4,4,\iz\space){Z1}
53 \psPoint(4,4 .2 add,\iz\space){Z2}
54 \psline(Z1)(Z2)
55 \uput[l](Z1){\small\iz}}
56 \psPoint(0,4 0.5 add,-3){X0}
57 \uput[-120](X0){$x$}
58 \psPoint(-4 .5 sub,0,-3){Y0}
59 \uput[0](Y0){$y$}}
60 \begin{LTXexample}[width=7.8cm]
61 \psset{unit=0.75}
62 \begin{pspicture}(-5.5,-6)(4.5,4)
63 \psframe*(-5.5,-6)(4.5,4)
64 \psset[pst-solides3d]{viewpoint=20 120 30 rtp2xyz,
65 Decran=15,lightsrc=-10 15 10}
66 % Parametric Surfaces
67 \psSolid[object=grille,base=-4 4 -4 4,
68 action=draw*,linecolor={[cmyk]{1,0,1,0.5}}]
69 (0,0,-3)
70 \defFunction{shell}(u,v)
71 {1.2 v exp u Sin dup mul v Cos mul mul}
72 {1.2 v exp u Sin dup mul v Sin mul mul}
73 {1.2 v exp u Sin u Cos mul mul}
74 \psSolid[object=surfaceparametree,
75 linecolor={[cmyk]{1,0,1,0.5}},
76 base=0 pi pi 4 div neg 5 pi mul 2 div,
77 fillcolor=yellow!50,incolor=green!50,
78 function=shell,linewidth=0.5\pslinewidth,ngrid=25]%
79 \psSolid[object=parallelepiped,a=8,b=8,c=6,
80 action=draw,linecolor={[cmyk]{1,0,1,0.5}}]%
81 \quadrillage
82 \end{pspicture}
83 \end{LTXexample}
84
85 \begin{LTXexample}[width=7.8cm]
86 \psset{unit=0.75}
87 \begin{pspicture}(-5,-4)(5,6)
88 \psframe*(-5,-4)(5,6)
89 \psset[pst-solides3d]{viewpoint=20 20 -10 rtp2xyz,
90 Decran=15,lightsrc=5 10 2}
91 % Parametric Surfaces
92 \psSolid[object=grille,base=-4 4 -4 4,
93 action=draw*,linecolor=red](0,0,-3)
94 \defFunction[algebraic]{shell}(u,v)
95 {1.21^v*(sin(u)*cos(u))}
96 {1.21^v*(sin(u)^2*sin(v))}
97 {1.21^v*(sin(u)^2*cos(v))}
98 %% \defFunction{shell}(u,v)
99 %% {1.2 v exp u Sin u Cos mul mul}
100 %% {1.2 v exp u Sin dup mul v Sin mul mul}
101 %% {1.2 v exp u Sin dup mul v Cos mul mul}
102 \psSolid[object=surfaceparametree,
103 linecolor={[cmyk]{1,0,1,0.5}},
104 base=0 pi pi 4 div neg 5 pi mul 2 div,
105 fillcolor=green!50,incolor=yellow!50,
106 function=shell,linewidth=0.5\pslinewidth,
107 ngrid=25]%
108 \white%
109 \gridIIID[Zmin=-3,Zmax=4,linecolor=white,
110 QZ=0.5](-4,4)(-4,4)
111 \end{pspicture}
112 \end{LTXexample}
113
114
115
116 \subsection{Exemple 2 : une hélice tubulaire}
117 \begin{LTXexample}[width=5.5cm]
118 \psset{unit=0.75}
119 \begin{pspicture}(-3,-4)(3,6)
120 \psset[pst-solides3d]{viewpoint=20 10 2,Decran=20,
121 lightsrc=20 10 10}
122 % Parametric Surfaces
123 \defFunction{helix}(u,v)
124 {1 .4 v Cos mul sub u Cos mul 2 mul}
125 {1 .4 v Cos mul sub u Sin mul 2 mul}
126 {.4 v Sin mul u .3 mul add}
127 \psSolid[object=surfaceparametree,linewidth=0.5\pslinewidth,
128 base=-10 10 0 6.28,fillcolor=yellow!50,incolor=green!50,
129 function=helix,
130 ngrid=60 0.4]%
131 \gridIIID[Zmin=-3,Zmax=3](-2,2)(-2,2)
132 \end{pspicture}
133 \end{LTXexample}
134
135
136 \subsection{Exemple 3 : un cône}
137 \begin{LTXexample}[width=10cm]
138 \psset{unit=0.5}
139 \begin{pspicture}(-9,-7)(10,12)
140 \psframe*(-9,-7)(10,12)
141 \psset[pst-solides3d]{
142 viewpoint=20 5 10,
143 Decran=50,lightsrc=20 10 5}
144 \psSolid[
145 object=grille,base=-2 2 -2 2,
146 linecolor=white](0,0,-2)
147 % Parametric Surfaces
148 \defFunction{cone}(u,v)
149 {u v Cos mul}{u v Sin mul}{u}
150 \psSolid[object=surfaceparametree,
151 base=-2 2 0 2 pi mul,
152 fillcolor=yellow!50,
153 incolor=green!50,function=cone,
154 linewidth=0.5\pslinewidth,
155 ngrid=25 40]%
156 \psset{linecolor=white}\white
157 \gridIIID[Zmin=-2,Zmax=2]
158 (-2,2)(-2,2)
159 \end{pspicture}
160 \end{LTXexample}
161
162
163 \subsection{Un site}
164 Vous trouverez sur le site :
165
166 \centerline{\url{http://k3dsurf.sourceforge.net/}}
167
168 un excellent logiciel pour représenter les surfaces avec de nombreux
169 exemples de surfaces paramétrées et autres.

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.