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