UPDATE: Removed the calc library and added an animation.
\documentclass[tikz,border=4pt]{standalone}
\usetikzlibrary{intersections}
\makeatletter % from https://tex.stackexchange.com/a/20864/121799
\newcommand{\tikzAngleOfLine}{\tikz@AngleOfLine}
\def\tikz@AngleOfLine(#1)(#2)#3{
\pgfmathanglebetweenpoints{
\pgfpointanchor{#1}{center}}{
\pgfpointanchor{#2}{center}}
\pgfmathsetmacro{#3}{\pgfmathresult}
}
\makeatother
\begin{document}
\begin{tikzpicture}[scale=5,font=\sffamily]
\draw[-latex] (0,-0.2) -- (0,2.2);
\draw[-latex] (-0.1,0) -- (2.4,0);
\coordinate[label=45:{$O$}] (O) at (0,0);
\coordinate[label=45:{$M$}] (M) at (1.1,1);
\coordinate[label=45:{$T$}] (T) at (M|-O);
\draw[name path=circle] (M) circle (1);
\draw[name path=cycloid,green!50!black] (O) plot[variable=\x,domain=0:5*pi/6] ({\x-sin(\x*180/pi)}
,{1-cos(\x*180/pi)});
\path [name intersections={of=cycloid and circle,by={P,Q}}];
\coordinate[label=45:{$R$}] (R) at (P-|M);
\tikzAngleOfLine(M)(R){\AngleStart}
\tikzAngleOfLine(M)(P){\AngleEnd}
\filldraw[red,fill opacity=0.3] (M) -- (M)+(\AngleStart:4pt)
arc (\AngleStart:\AngleEnd:4pt) node[pos=0.3,above,opacity=1]{$t$} -- (M) --cycle;
\filldraw[green,fill opacity=0.3] (R) -- ++(-4pt,0) arc (180:90:4pt) -- (R) -- cycle;
\draw[name path=line] (T) -- (M) -- (P) node[above,midway,sloped]{$r$} -- (R);
\node[label=above:{$P$}] at (P){};
\foreach \X in {O,T,M,P,R}
{\draw[fill=blue] (\X) circle (0.4pt);}
\end{tikzpicture}
\end{document}
\documentclass{article}
\usepackage{animate}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[active,tightpage]{preview}
\makeatletter
\def\@anim@@newframe{\@ifstar\@anim@newframe\@anim@newframe}
\def\@anim@newframe{\end{preview}\begin{preview}}
\renewenvironment{animateinline}[2][]{%
\let\newframe\@anim@@newframe%
\let\multiframe\@anim@multiframe%
\begin{preview}}{%
\end{preview}}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{tikz}
\usetikzlibrary{intersections}
\makeatletter % from https://tex.stackexchange.com/a/20864/121799
\newcommand{\tikzAngleOfLine}{\tikz@AngleOfLine}
\def\tikz@AngleOfLine(#1)(#2)#3{
\pgfmathanglebetweenpoints{
\pgfpointanchor{#1}{center}}{
\pgfpointanchor{#2}{center}}
\pgfmathsetmacro{#3}{\pgfmathresult}
}
\makeatother
\begin{document}
\begin{animateinline}[autoplay,loop]{2}
\multiframe{62}{i=1+1}{\pgfmathsetmacro{\X}{\i/10}
\begin{tikzpicture}[scale=2,font=\sffamily]
\draw[-latex] (0,-0.2) -- (0,2.2);
\draw[-latex] (-1,0) -- (7.2,0);
\path[use as bounding box] (-1,-0.4) rectangle (7.4,2.5);
\coordinate[label=45:{$O$}] (O) at (0,0);
\coordinate[label=45:{$M$}] (M) at (\X,1);
\coordinate[label=45:{$T$}] (T) at (M|-O);
\draw[name path=circle] (M) circle (1);
\draw[name path=cycloid,green!50!black] (O) plot[variable=\x,domain=0:0.01+\X] ({\x-sin(\x*180/pi)}
,{1-cos(\x*180/pi)});
% \Disc discriminates between the cases of one and two intersections
\pgfmathtruncatemacro{\Disc}{ifthenelse(\i>31,1,0)}
\ifnum\Disc=0
\path [name intersections={of=cycloid and circle,by={P}}];
\else
\path [name intersections={of=cycloid and circle,by={Q,P}}];
\fi
\coordinate[label=45:{$R$}] (R) at (P-|M);
\tikzAngleOfLine(M)(R){\AngleStart}
\tikzAngleOfLine(M)(P){\AngleEnd}
\filldraw[red,fill opacity=0.3] (M) -- (M)+(\AngleStart:4pt)
arc (\AngleStart:\AngleEnd:4pt) node[pos=0.3,above,opacity=1]{$t$} -- (M) --cycle;
\tikzAngleOfLine(R)(P){\AngleStart}
\tikzAngleOfLine(R)(M){\AngleEnd}
\ifnum\Disc=0
\filldraw[green,fill opacity=0.3] (R) -- ++(-4pt,0) arc (180:\AngleEnd:4pt) -- (R) -- cycle;
\else
\filldraw[green,fill opacity=0.3] (R) -- ++(4pt,0) arc (0:\AngleEnd:4pt) -- (R) -- cycle;
\fi
\draw[name path=line] (T) -- (M) -- (P) node[above,midway,sloped]{$r$} -- (R)
--cycle;
\node[label=above:{$P$}] at (P){};
\foreach \X in {O,T,M,P,R}
{\draw[fill=blue] (\X) circle (1pt);}
\end{tikzpicture}}
\end{animateinline}
\end{document}
Using this trick one can create an animated gif.