Retour

rainbow.tex

Télécharger le fichier Fichier PDF
\documentclass{article}
\usepackage{animate}
\usepackage[dvipsnames,svgnames]{pstricks}
\usepackage{pst-node,pst-plot,pst-eucl}
\usepackage{graphicx}
\usepackage{pst-solides3d}
\usepackage{multido}
\usepackage[nomessages]{fp}
\pagestyle{empty}
\begin{document}
 
At the end of a rainbow \dots
 
\def\R{4}            % Radius des festen Kreises (Length fixed Circle)	
\def\r{1}            % Radius des abrollenden Kreises (Length rolling Circle)
\def\A{0.75}         % Abstand erzeugenden Punkt zu Mittelpunkt des abrollenden Kreises (Length Pointer)
\def\winkel{360}     % Winkel: 1 Umlauf entspricht 360 (Angle: 1 revolution corresponds to 360)
\FPdiv{\myDeltaA}{\winkel}{89}%
 
\def\psBall{\rput(0,0){\psSolid[object=sphere,r=0.35,hue,RotX=\ai\space,ngrid=12](0,0,0)}}
 
\def\myFigure{%
 \pstVerb{% erzeugender Punkt (parameterized Hypocycloide)
    /Xcoord \ai\space cos \R\space \r\space sub mul \ai\space \R\space \r\space sub \r\space div mul cos \A\space mul add def % (R-r)cos(a)+A cos[(R/r-1) a]
    /Ycoord \ai\space sin \R\space \r\space sub mul \ai\space \R\space \r\space sub \r\space div mul sin \A\space mul sub def % (R-r)sin(a)-A sin[(R/r-1) a]
    }%
%    \pstVerb{% Mittelpunkt des abrollenden Kreises (Midpoint of rotating circle)
%    /Xc \ai\space cos \R\space \r\space sub mul def%
%    /Yc \ai\space sin \R\space \r\space sub mul def%
%    }%
 
%    \def\HypoCyc{% Bahnkurve der Hypozykloide (parameterized Hypocycloide for parametricplot)
%    t cos \R\space \r\space sub mul t \R\space \r\space sub \r\space div mul cos \A\space mul add %
%    t sin \R\space \r\space sub mul t \R\space \r\space sub \r\space div mul sin \A\space mul sub %
%    }%
 
    % Verbindung: Mittelpunkt des abrollenden Kreises zum erzeugenden Punkt = Zeiger (Pointer)
%    \rput(0,0){\psline[linecolor=gray,linewidth=0.5pt]{*-o}(!Xc Yc)(!Xcoord Ycoord)}
 
    % Abrollender Kreis (Rolling circle)
%    \rput(0,0){\rput(!Xc Yc){\pscircle[linecolor=blue,linewidth=1pt](0,0){\r}}}
 
    % erzeugender Punkt (generating point)
    \rput(0,0){\rput(!Xcoord Ycoord){\psBall}}%
 
    % Zeichnen der Hypozykloide (draw the Hypocycloide)
%    \rput(0,0){\parametricplot[plotpoints=500,linewidth=1pt,linecolor=red]{0}{\ai}{\HypoCyc}}%
 
\rput(0,0){\psSolid[object=cube,ngrid=4,
    hue,hollow,
    a=0.5,
    RotZ=-\ai\space](0,0,0)}
}
 
\newcounter{i}
\setcounter{i}{0}
 
\begin{animateinline}[controls,loop]{10}
  \FPset{ai}{0}%
  \begin{pspicture}(-5,-5)(5,5)\myFigure\end{pspicture}%
  \stepcounter{i}%
  \whiledo{\thei<90}{%
    \newframe%
	\FPeval{ai}{myDeltaA*\thei}%
    \begin{pspicture}(-5,-5)(5,5)\myFigure\end{pspicture}
    \stepcounter{i}%
  }
\end{animateinline}
 
\end{document}