\documentclass{article}
\usepackage{pstricks}
\usepackage{pst-all}
\usepackage{pstricks-add}
\pagestyle{empty}
\begin{document}
\SpecialCoor
\begin{pspicture*}(-.5,-.5)(6.5,4.5)
\def\AtoB(#1)(#2)#3{\psLCNode(#1){-1}(#2){1}{#3}}
\def\psnline#1(#2,#3)#4{\xdef\tmp{#1}\multido{\i=#2+1}{#3}%
{\xdef\tmp{\tmp(#4\i)}}\expandafter\psline\tmp}
\multido{\i=1+1}{50}{\pnode(! \i\space 1 sub 2 mul dup cos 3 mul 1 add exch sin 2 mul){P\i}}
% P1..P50 are points on an ellipse at 2 degree separation
%P1=(4,0)
\pnode(4,-1){P0}%point not drawn, but used for tangent direction at P1
\psnline(1,50){P}% draw the piece of ellipse
\pstVerb{ 0 }%leave 0 on stack, as prior value of theradius
\multido{\ia=50+-1,\ib=49+-1,\ic=48+-1}{49}{\AtoB(P\ib)(P\ia){C0}\AtoB(P\ic)(P\ib){C1}%
\psellipticarcn[linecolor=red](P\ib)(! \psGetNodeCenter{C0} C0.x C0.y Pyth add dup dup  ){(C0)}{(C1)}%leave new radius on stack for next loop
%\psellipticarc would be used for an involute moving in opposite direction
}
\pstVerb{ pop } %leave stack clean
\end{pspicture*}
\end{document}
