%% 
%%  A DANTE-Edition example
%% 
%%  Example 23-06-73 on page 421.
%% 
%%  Copyright (C) 2011 Herbert Voss
%% 
%%  It may be distributed and/or modified under the conditions
%%  of the LaTeX Project Public License, either version 1.3
%%  of this license or (at your option) any later version.
%% 
%%  See http://www.latex-project.org/lppl.txt for details.
%% 
%% 
%% ==== 
% Show page(s) 1
%% 
\documentclass[]{article}
\pagestyle{empty}
\setlength\textwidth{201.70511pt}
\setlength\parindent{0pt}

\usepackage{pst-solides3d}

\begin{document}
\def\NormalSin#1#2#3{%
 \psset{linecolor=#3}%
 \pstVerb{
   /xP #1 def
   /yP #2 def
   /zP 2 #1 Sin mul #2 Sin mul def
   /normaleX 2 #1 Cos mul #2 Sin mul neg def
   /normaleY 2 #2 Cos mul #1 Sin mul neg def
   /Norme normaleX dup mul normaleY dup mul add 1 add sqrt def
   /Nx normaleX Norme div def
   /Ny normaleY Norme div def
   /Nz 1 Norme div def }%
\psSolid[object=vecteur,args=Nx Ny Nz](xP,yP,zP)}
\psset{viewpoint=50 20 20 rtp2xyz,Decran=50}
\begin{pspicture}(-3,-3)(3,4)
\psSurface[algebraic,ngrid=0.2 0.2,incolor=yellow!20,axesboxed,Zmin=-2,Zmax=2,
    fillcolor=blue!20](-3,-3)(3,3){2*sin(x)*sin(y)}%
\NormalSin{1.57}{0.75}{red}%
\NormalSin{1.57}{1.57}{blue}%
\NormalSin{2}{1.57}{green}%
\NormalSin{-1.57}{-1.57}{magenta}
\end{pspicture}
\end{document}
