\documentclass[varwidth=true, border=2pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes, calc} 

\makeatletter
\newcommand*\getX[1]{\expandafter\getX@i#1\@nil}
\newcommand*\getY[1]{\expandafter\getY@i#1\@nil}
\def\getX@i#1,#2\@nil{#1}
\def\getY@i#1,#2\@nil{#2}
\makeatother

\begin{document}
\begin{tikzpicture}
    % Define display style
    \tikzstyle{cross}=[cross out, draw, solid, red, inner sep=1.5pt, thick]
    \tikzstyle{diagonals}=[dashed, blue]

    % Define coordinates
    \newcommand\A{0,1}

    \newcommand\BX{3}
    \newcommand\BY{0}

    \newcommand\CX{4}
    \newcommand\CY{2}

    \newcommand\DX{1}
    \newcommand\DY{2}

    % Create shortcuts for coordinates and draw labels
    \coordinate[label=left:$A$]  (A) at (\getX{\A}, \getY{\A});
    \coordinate[label=right:$B$] (B) at (\BX, \BY);
    \coordinate[label=above:$C$] (C) at (\CX, \CY);
    \coordinate[label=above:$D$] (D) at (\DX, \DY);

    \coordinate[label=below:$E$] (E) at ({(\getX{\A}+\BX)/2}, {(\getY{\A}+\BY)/2});
    \coordinate[label=right:$F$] (F) at ({(\BX+\CX)/2}, {(\BY+\CY)/2});
    \coordinate[label=above:$G$] (G) at ({(\CX+\DX)/2}, {(\CY+\DY)/2});
    \coordinate[label=left:$H$] (H) at ({(\DX+\getX{\A})/2}, {(\DY+\getY{\A})/2});

    % Draw the rectangle
    \draw[blue, thick]  (A) -- (B) -- (C) -- (D) -- (A);

    % Draw the background of the parallelogram
    \draw[blue, fill=green!25] (E) -- (F) -- (G) -- (H) -- (E);

    % Draw the diagonals
    \draw[diagonals] (A) -- (C);
    \draw[diagonals] (B) -- (D);

    % Draw the parallelogram itself
    \draw[blue] (E) -- (F) -- (G) -- (H) -- (E);

    % Draw the crosses for each edge
    \foreach \coordinateName in {A, B, C, D}
        \node[cross] at (\coordinateName) {};

    \foreach \coordinateName in {E, F, G, H}
        \node[cross, gray!50!black] at (\coordinateName) {};
  \end{tikzpicture}
\end{document}
