Here is an approach using tikz:
EDIT
Simplified the code a little by making use of the even odd rule.
EDIT2
Just for fun a second, little more minimalistic solution using the mixing of colours.
\documentclass[tikz, border=2mm]{standalone}
\usetikzlibrary{patterns}
%
\begin{document}
%
\begin{tikzpicture}
%
\def\ellipse{(1,0) circle (1.6 cm and 0.6 cm)}%
\def\circone{(0,0) circle (2 cm)}%
\def\circtwo{(2.2,0) circle (1.6 cm)}%
\def\rectone{ (1.3,1) rectangle ++(2,-2)}%
\def\recttwo{ (1.3,1) rectangle ++(-2,-2)}%
%
\begin{scope}[even odd rule]
\clip \circone \rectone \recttwo;
\pattern[pattern=dots, pattern color=gray] \ellipse;
\end{scope}
%
\begin{scope}[even odd rule]
\clip \circtwo \rectone \recttwo;
\pattern[pattern=crosshatch, pattern color=gray] \ellipse;
\end{scope}
%
\begin{scope}
\clip \circone;
\clip \rectone;
\pattern[pattern=checkerboard, pattern color=gray] \ellipse;
\end{scope}
%
\begin{scope}
\clip \circtwo;
\clip \recttwo;
\pattern[pattern=fivepointed stars, pattern color=gray] \ellipse;
\end{scope}
%
\begin{scope}
\clip \ellipse;
\draw[thick] \recttwo;
\end{scope}
%
\draw \circone \circtwo \ellipse;
%
\end{tikzpicture}%
%
\end{document}

\documentclass[tikz, border=2mm]{standalone}
%
\begin{document}
%
\begin{tikzpicture}
%
\def\ellipse{(1,0) circle (1.6 cm and 0.6 cm)}%
\def\circone{(0,0) circle (2 cm)}%
\def\circtwo{(2.2,0) circle (1.6 cm)}%
\def\rect{ (1.3,1) rectangle ++(-2,-2)}%
%
\fill[yellow] \ellipse;
%
\begin{scope}
\clip \rect;
\fill[red] \ellipse;
\end{scope}
%
\begin{scope}
\clip \circtwo;
\clip \circone;
\fill[blue, opacity=0.5] \ellipse;
\end{scope}
%
\begin{scope}
\clip \ellipse;
\draw[thick] \rect;
\end{scope}
%
\draw \circone \circtwo \ellipse;
%
\end{tikzpicture}%
%
\end{document}
