%% 
%%  A DANTE-Edition example
%% 
%%  Example 34-02-4 on page 745.
%% 
%%  Copyright (C) 2010 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{375.57637pt}
\setlength\parindent{0pt}

\usepackage{pst-solides3d,multido}

\begin{document}
\psset{lightsrc=75 -63 17,viewpoint=100 -45 10 rtp2xyz,Decran=50,fontsize=50}
\multido{\iRotZ=0+10}{36}{%
  \begin{pspicture*}(-5,-3)(5,4)
  \psframe(-5,-3)(5,4)\pstVerb{/iRotZ \iRotZ\space def}%
  \psSolid[object=grille,base=-7 7 -7 7,ngrid=1. 1.,action=draw,linecolor=red](0,0,-3.4)
  \defFunction[algebraic]{helix}(u,v)%
    {2*(0.4*cos(v)-1)*cos(u)}{2*(0.4*cos(v)-1)*sin(u)}{0.4*sin(v)+0.3*u}
  \codejps{ /helice -10 10 0 6.28 [60 0.4] {helix} newsurfaceparametree
   {0 0 iRotZ rotateOpoint3d} solidtransform {0 -4 0 translatepoint3d} solidtransform
   dup solidfacesreverse def
  /helicesym helice dupsolid exch pop {[0 1 0 0] symplan3d} solidtransform
   dup solidfacesreverse def
  /solidgrid false def
  solidlightOn
  helicesym dup [0 1 0.5 1] solidputhuecolors dup (White) inputcolors
  drawsolid**
  .5 setfillopacity [0 1 0 0] eq2plan
  dup [-7 7 -5 3.4] planputrange
  dup [14. 8.4] planputngrid
  newplan dup videsolid
  dup (0.7 0.7 1 setrgbcolor) (0.7 0.7 1 setrgbcolor) inoutputcolors drawsolid**
  helice dup [0 1 0.5 1] solidputhuecolors dup (White) inputcolors drawsolid** }
  \end{pspicture*}
  \newpage}
\end{document}
