\section{Les surfaces paramétrées}
\subsection{Méthode}
Les surfaces paramétrées écrites sous la forme $[x(u,v),y(u,v),z(u,v)]$
seront gérées grâce à la commande \verb+\psSolid+ par l'option 
\Cadre{object=surfaceparametree} et définies soit en \textit{notation
polonaise inverse} (\texttt{RPN}, \textit{Reverse Polish Notation})~: 

{\red
\begin{verbatim}
\defFunction{shell}(u,v){1.2 v exp u Sin dup mul v Cos mul mul}% x(u,v)
                        {1.2 v exp u Sin dup mul v Sin mul mul}% y(u,v)
                        {1.2 v exp u Sin u Cos mul mul}        %z(u,v)
\end{verbatim}
}
soit en \textit{notation algébrique} :
{\red
\begin{verbatim}
\defFunction[algebraic]{shell}(u,v){1.2^v*(sin(u)^2*cos(v))}% x(u,v)
                                   {1.2^v*(sin(u)^2*sin(v))}% y(u,v)
                                   {1.2^v*(sin(u)*cos(u))}  %z(u,v)
\end{verbatim}
}
Les plages de valeurs pour $u$ et $v$ sont définies dans l'option
\Cadre{range=$\mathtt{u_{min}}$ $\mathtt{u_{max}}$ $\mathtt{v_{min}}$
$\mathtt{v_{max}}$}.  %$

Le tracé de la fonction est activé par
\Cadre{function=nom\_de\_la\_fonction}, ce nom a été précisé lorsque les
équations paramétriques ont été écrites :
\verb+\defFunction{nom_de_la_fonction}...+

Tout autre choix que $u$ et $v$ est acceptable. Rappelons que l'argument de
\Cadre{Sin} et \Cadre{Cos} doit être en radians et celui de \Cadre{sin} et
\Cadre{cos} en degrés si vous utilisez la \textit{RPN}. En notation
algébrique, l'argument est en radians.


\subsection{Exemple 1 : dessin d'un coquillage}
\newcommand\quadrillage{%
\psset{linecolor={[cmyk]{1,0,1,0.5}}}\green
\multido{\ix=-4+1}{9}{%
    \psPoint(\ix\space,4,-3){X1}
    \psPoint(\ix\space,4 .2 add,-3){X2}
    \psline(X1)(X2)
    \uput[-120](X1){\small\ix}}
\multido{\iy=-4+1}{9}{%
    \psPoint(-4,\iy\space,-3){Y1}
    \psPoint(-4 .2 sub,\iy\space,-3){Y2}
    \psline(Y1)(Y2)
    \uput[0](Y1){\small\iy}}
\multido{\iz=-3+1}{7}{%
    \psPoint(4,4,\iz\space){Z1}
    \psPoint(4,4 .2 add,\iz\space){Z2}
    \psline(Z1)(Z2)
    \uput[l](Z1){\small\iz}}
\psPoint(0,4 0.5 add,-3){X0}
\uput[-120](X0){$x$}
    \psPoint(-4 .5 sub,0,-3){Y0}
\uput[0](Y0){$y$}}
\begin{LTXexample}[width=7.8cm]
\psset{unit=0.75}
\begin{pspicture}(-5.5,-6)(4.5,4)
\psframe*(-5.5,-6)(4.5,4)
\psset[pst-solides3d]{viewpoint=20 120 30 rtp2xyz,
  Decran=15,lightsrc=-10 15 10}
% Parametric Surfaces
\psSolid[object=grille,base=-4 4 -4 4,
  action=draw*,linecolor={[cmyk]{1,0,1,0.5}}]
  (0,0,-3)
\defFunction{shell}(u,v)
  {1.2 v exp u Sin dup mul v Cos mul mul}
  {1.2 v exp u Sin dup mul v Sin mul mul}
  {1.2 v exp u Sin u Cos mul mul}
\psSolid[object=surfaceparametree,
  linecolor={[cmyk]{1,0,1,0.5}},
  base=0 pi pi 4 div neg 5 pi mul 2 div,
  fillcolor=yellow!50,incolor=green!50,
  function=shell,linewidth=0.5\pslinewidth,ngrid=25]%
\psSolid[object=parallelepiped,a=8,b=8,c=6,
  action=draw,linecolor={[cmyk]{1,0,1,0.5}}]%
\quadrillage
\end{pspicture}
\end{LTXexample}

\begin{LTXexample}[width=7.8cm]
\psset{unit=0.75}
\begin{pspicture}(-5,-4)(5,6)
\psframe*(-5,-4)(5,6)
\psset[pst-solides3d]{viewpoint=20 20 -10 rtp2xyz,
  Decran=15,lightsrc=5 10 2}
% Parametric Surfaces
\psSolid[object=grille,base=-4 4 -4 4,
  action=draw*,linecolor=red](0,0,-3)
\defFunction[algebraic]{shell}(u,v)
  {1.21^v*(sin(u)*cos(u))}
  {1.21^v*(sin(u)^2*sin(v))}
  {1.21^v*(sin(u)^2*cos(v))}
%% \defFunction{shell}(u,v)
%%    {1.2 v exp u Sin u Cos mul mul}
%%    {1.2 v exp u Sin dup mul v Sin mul mul}
%%    {1.2 v exp u Sin dup mul v Cos mul mul}
\psSolid[object=surfaceparametree,
   linecolor={[cmyk]{1,0,1,0.5}},
   base=0 pi pi 4 div neg 5 pi mul 2 div,
   fillcolor=green!50,incolor=yellow!50,
   function=shell,linewidth=0.5\pslinewidth,
   ngrid=25]%
\white%
\gridIIID[Zmin=-3,Zmax=4,linecolor=white,
  QZ=0.5](-4,4)(-4,4)
\end{pspicture}
\end{LTXexample}



\subsection{Exemple 2 : une hélice tubulaire}
\begin{LTXexample}[width=5.5cm]
\psset{unit=0.75}
\begin{pspicture}(-3,-4)(3,6)
\psset[pst-solides3d]{viewpoint=20 10 2,Decran=20,
  lightsrc=20 10 10}
% Parametric Surfaces
\defFunction{helix}(u,v)
  {1 .4 v Cos mul sub u Cos mul 2 mul}
  {1 .4 v Cos mul sub u Sin mul 2 mul}
  {.4 v Sin mul u .3 mul add}
\psSolid[object=surfaceparametree,linewidth=0.5\pslinewidth,
  base=-10 10 0 6.28,fillcolor=yellow!50,incolor=green!50,
  function=helix,
  ngrid=60 0.4]%
\gridIIID[Zmin=-3,Zmax=3](-2,2)(-2,2)
\end{pspicture}
\end{LTXexample}


\subsection{Exemple 3 : un cône}
\begin{LTXexample}[width=10cm]
\psset{unit=0.5}
\begin{pspicture}(-9,-7)(10,12)
\psframe*(-9,-7)(10,12)
\psset[pst-solides3d]{
  viewpoint=20 5 10,
  Decran=50,lightsrc=20 10 5}
\psSolid[
  object=grille,base=-2 2 -2 2,
  linecolor=white](0,0,-2)
% Parametric Surfaces
\defFunction{cone}(u,v)
  {u v Cos mul}{u v Sin mul}{u}
\psSolid[object=surfaceparametree,
   base=-2 2 0 2 pi mul,
   fillcolor=yellow!50,
   incolor=green!50,function=cone,
   linewidth=0.5\pslinewidth,
   ngrid=25 40]%
\psset{linecolor=white}\white
\gridIIID[Zmin=-2,Zmax=2]
  (-2,2)(-2,2)
\end{pspicture}
\end{LTXexample}


\subsection{Un site}
Vous trouverez sur le site :

\centerline{\url{http://k3dsurf.sourceforge.net/}}

un excellent logiciel pour représenter les surfaces avec de nombreux
exemples de surfaces paramétrées et autres.
