%%
%%  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}