%% 
%%  Ein Beispiel der DANTE-Edition
%%  
%%  7. Auflage
%% 
%%  Beispiel 22-06-89 auf Seite 461.
%% 
%%  Copyright (C) 2016 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[]{exaarticle}
\pagestyle{empty}
\setlength\textwidth{352.81416pt}
\setlength\parindent{0pt}
%StartShownPreambleCommands
\usepackage{pst-solides3d}
%StopShownPreambleCommands
\begin{document}
\psset{viewpoint=50 50 20 rtp2xyz,lightsrc=25 37 17,Decran=30}
\begin{pspicture}(-1.5,-1)(1.5,6)
\psSolid[object=grille,base=-2 2 -2 2,ngrid=8]
\psSolid[object=prisme,h=10,ngrid=20 2,hue=0 1 0.4 5,
  base=.5 0 .5 .5 0 .5 -.5 .5 -.5 0 -.5 -.5 0 -.5 .5 -.5]
\end{pspicture}\qquad
\begin{pspicture}(-1.5,-1)(1.5,6)
\psSolid[object=grille,base=-2 2 -2 2,ngrid=8]
\pstVerb{
  /torsion {       % x y z liegt auf dem Stack
    2 dict begin   % alles lokal halten
    /M defpoint3d  % x- y- z-Koordinaten speichern
    M              % x y z wieder auf den Stack legen
    /z exch def    % z Koordinate speichern
    pop pop        % x y löschen
    M              % x y z auf den Stack legen
    0 0 z 18 mul   % weitere 0 0 18*z auf den Stack
    rotateOpoint3d % Punkt rotieren
    end
  } def
}%
\psSolid[object=prisme,h=10,ngrid=20 2,transform=torsion,hue=0 1 0.4 5,
  base=.5 0 .5 .5 0 .5 -.5 .5 -.5 0 -.5 -.5 0 -.5 .5 -.5]
\end{pspicture}
\end{document}
