\documentclass[]{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\usetikzlibrary{calc} 
\pgfplotsset{compat=1.14} 

\usepackage{xcolor}

%Draw Trochoids and Cycloid
%r fixed, b or Lambda varying
       
\tikzstyle{curves}=[
   smooth,samples=200,
   variable=\t,
   domain=0:4*pi,
   color=blue
]

\tikzstyle{rolling}=[
   color=red
]

%Radius of rolling circle
\pgfmathparse{1} \let\r\pgfmathresult
   
%Number of curves to draw.
\pgfmathparse{10} \let\N\pgfmathresult
   
%Relative position of rollong point. Lambda=\pm 1: cycloid
\pgfmathparse{0.0} \let\LambdaMin\pgfmathresult
\pgfmathparse{2.0} \let\LambdaMax\pgfmathresult

%Steps of aLambda
\pgfmathparse{(\LambdaMax-\LambdaMin)/\N} \let\dLambda\pgfmathresult
  
%Variation of colors - color in [0,100].
\pgfmathparse{100/\N} \let\dcolor\pgfmathresult

\newcommand{\DrawTrochoid}[2]
{
   %cos and sin expects degrees: deg(\t)
   %Alternative: tikzpicture option trig format=rad
   \draw[curves,#2]
       plot
       (
           { \r*(  \t-#1*sin(deg(\t))  ) },
           { \r*(  1 -#1*cos(deg(\t))  ) }
       );
}

%Fixed time - draw rolling
\pgfmathparse{4*pi/3} \let\T\pgfmathresult
   
\begin{document}
   \begin{tikzpicture}
       %Coordinate system
       \draw[-latex] (-\r,0) -- (4*pi+0.5*\r*\LambdaMax,0) node [right] {$x$};
       \draw[-latex] (0,-\r) -- (0,1.5*\r*\LambdaMax) node [above] {$y$};
              
       \foreach \n in {0,1,...,\N}
       {
           %\Lambda and color, \color
           \pgfmathparse{\LambdaMin+\n*\dLambda} \let\Lambda\pgfmathresult
           \pgfmathparse{\n*\dcolor} \let\col\pgfmathresult
          
           \DrawTrochoid{\Lambda}{color=blue!\col!cyan,thin} 
       }
       
       %Draw cycloid
       \pgfmathparse{1} \let\Lambda\pgfmathresult
       \DrawTrochoid{\Lambda}{color=blue,thick}
      
       \pgfmathparse{deg(\T)} \let\Angle\pgfmathresult
       \pgfmathparse{\r*(   \T-\Lambda*sin(\Angle)   )} \let\xt\pgfmathresult
       \pgfmathparse{\r*(    1-\Lambda*cos(\Angle)   )} \let\yt\pgfmathresult
   
       \coordinate (RCycloid) at (\xt,\yt);
       \filldraw[curves] (RCycloid) circle(1pt);
      
       %Rolling center
       \pgfmathparse{\r*\T} \let\xR\pgfmathresult
       \pgfmathparse{\r}    \let\yR\pgfmathresult
       \coordinate (Rolling) at (\xR,\yR);
       
       \filldraw[rolling] (Rolling) circle(1pt);
       \draw[rolling] (Rolling) circle(\r);
      
       %Point on last trochoid
       \pgfmathparse{-sin(\Angle)} \let\px\pgfmathresult
       \pgfmathparse{-cos(\Angle)} \let\py\pgfmathresult
       \coordinate (p) at (\px,\py);
       \coordinate (q) at (\py,-\px);
       
       \coordinate (RTrochoid) at ($(Rolling)+\r*\LambdaMax*(p)$);
       \draw[-latex,rolling] (RCycloid)-- +(q);
       \draw[-latex,rolling] (Rolling)-- (RCycloid);
       \draw[-latex,curves] (RCycloid)-- (RTrochoid);
      
       %Tangent
       \pgfmathparse{\r*(1-\LambdaMax*cos(\Angle))} \let\drx\pgfmathresult
       \pgfmathparse{\r*\LambdaMax*sin(\Angle)}    \let\dry\pgfmathresult
       \coordinate (dr) at (\drx,\dry);
       
       \draw[-latex,curves] (RTrochoid)-- +(dr);
   \end{tikzpicture}
\end{document}