%
% sbox.tex -- template for standalon tikz images
%
% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
%
\documentclass[tikz]{standalone}
\usepackage{amsmath}
\usepackage{times}
\usepackage{txfonts}
\usepackage{pgfplots}
\usepackage{csvsimple}
\usetikzlibrary{arrows,intersections,math}
\begin{document}
\def\skala{1}
\begin{tikzpicture}[>=latex,thick,scale=\skala]

\def\s{0.2}
\def\punkt#1#2{({#1*\s},{(8-(#2))*\s})}

\definecolor{b}{rgb}{0,0,0}
\definecolor{w}{rgb}{1,1,1}

\def\feld#1#2#3{
	\fill[color=#3] \punkt{#1}{#2} rectangle \punkt{(#1+1)}{(#2-1)};
}

\def\zeile#1#2#3#4#5#6#7#8#9{
	\feld{0}{#1}{#2}
	\feld{1}{#1}{#3}
	\feld{2}{#1}{#4}
	\feld{3}{#1}{#5}
	\feld{4}{#1}{#6}
	\feld{5}{#1}{#7}
	\feld{6}{#1}{#8}
	\feld{7}{#1}{#9}
}
\def\inverse#1#2#3#4#5#6#7#8#9{
	\feld{8}{#1}{#2}
	\feld{9}{#1}{#3}
	\feld{10}{#1}{#4}
	\feld{11}{#1}{#5}
	\feld{12}{#1}{#6}
	\feld{13}{#1}{#7}
	\feld{14}{#1}{#8}
	\feld{15}{#1}{#9}
}
\def\rechteck{
	\draw (0,{1*\s}) rectangle ({16*\s},{(8+1)*\s});
	\draw ({8*\s},{1*\s}) -- ({8*\s},{(8+1)*\s});
}

\def\pivot#1#2{
	\draw[color=red,line width=1.2pt]
		\punkt{(#1+\inset)}{(#2-\inset)}
		rectangle
		\punkt{(#1+1-\inset)}{(#2-1+\inset)};
}
\def\inset{0.1}
\def\cleanup#1#2#3{
	\pgfmathparse{(#3-#2)/abs(#3-#2)}
	\xdef\signum{\pgfmathresult}
	\draw[color=blue!50,line width=1.2pt]
		\punkt{(#1+\inset)}{#3}
		--
		\punkt{(#1+\inset)}{(#2-1+\inset*\signum)}
		--
		\punkt{(#1+1-\inset)}{(#2-1+\inset*\signum)}
		--
		\punkt{(#1+1-\inset)}{#3}
	;
}

\begin{scope}
	\zeile0bwwwbbbb \inverse0bwwwwwww
	\zeile1bbwwwbbb \inverse1wbwwwwww
	\zeile2bbbwwwbb \inverse2wwbwwwww
	\zeile3bbbbwwwb \inverse3wwwbwwww
	\zeile4bbbbbwww \inverse4wwwwbwww
	\zeile5wbbbbbww \inverse5wwwwwbww
	\zeile6wwbbbbbw \inverse6wwwwwwbw
	\zeile7wwwbbbbb \inverse7wwwwwwwb
	\rechteck
	\pivot{0}{0}
	\cleanup{0}{1}{7}
\end{scope}

\begin{scope}[xshift=4cm]
	\draw[->,shorten >= 0.05cm,shorten <= 0.05cm]
		\punkt{-4}{3} -- \punkt{0}{3};
	\zeile0bwwwbbbb \inverse0bwwwwwww
	\zeile1wbwwbwww \inverse1bbwwwwww
	\zeile2wbbwbbww \inverse2bwbwwwww
	\zeile3wbbbbbbw \inverse3bwwbwwww
	\zeile4wbbbwbbb \inverse4bwwwbwww
	\zeile5wbbbbbww \inverse5wwwwwbww
	\zeile6wwbbbbbw \inverse6wwwwwwbw
	\zeile7wwwbbbbb \inverse7wwwwwwwb
	\rechteck
	\pivot{1}{1}
	\cleanup{1}{2}{7}
\end{scope}

\begin{scope}[xshift=8cm]
	\draw[->,shorten >= 0.05cm,shorten <= 0.05cm]
		\punkt{-4}{3} -- \punkt{0}{3};
	\zeile0bwwwbbbb \inverse0bwwwwwww
	\zeile1wbwwbwww \inverse1bbwwwwww
	\zeile2wwbwwbww \inverse2wbbwwwww
	\zeile3wwbbwbbw \inverse3wbwbwwww
	\zeile4wwbbbbbb \inverse4wbwwbwww
	\zeile5wwbbwbww \inverse5bbwwwbww
	\zeile6wwbbbbbw \inverse6wwwwwwbw
	\zeile7wwwbbbbb \inverse7wwwwwwwb
	\rechteck
	\pivot{2}{2}
	\cleanup{2}{3}{7}
\end{scope}

\begin{scope}[xshift=12cm,yshift=0cm]
	\draw[->,shorten >= 0.05cm,shorten <= 0.05cm]
		\punkt{-4}{3} -- \punkt{0}{3};
	\zeile0bwwwbbbb \inverse0bwwwwwww
	\zeile1wbwwbwww \inverse1bbwwwwww
	\zeile2wwbwwbww \inverse2wbbwwwww
	\zeile3wwwbwwbw \inverse3wwbbwwww
	\zeile4wwwbbwbb \inverse4wwbwbwww
	\zeile5wwwbwwww \inverse5bwbwwbww
	\zeile6wwwbbwbw \inverse6wbbwwwbw
	\zeile7wwwbbbbb \inverse7wwwwwwwb
	\rechteck
	\pivot{3}{3}
	\cleanup{3}{4}{7}
	\draw[->,shorten >= 0.05cm,shorten <= 0.05cm]
		\punkt{8}{7} -- \punkt{8}{11};
\end{scope}

\begin{scope}[xshift=12cm,yshift=-2.4cm]
	\draw[<-,shorten >= 0.05cm,shorten <= 0.05cm]
		\punkt{-4}{3} -- \punkt{0}{3};
	\zeile0bwwwbbbb \inverse0bwwwwwww
	\zeile1wbwwbwww \inverse1bbwwwwww
	\zeile2wwbwwbww \inverse2wbbwwwww
	\zeile3wwwbwwbw \inverse3wwbbwwww
	\zeile4wwwwbwwb \inverse4wwwbbwww
	\zeile5wwwwwwbw \inverse5bwwbwbww
	\zeile6wwwwbwww \inverse6wbwbwwbw
	\zeile7wwwwbbwb \inverse7wwbbwwwb
	\rechteck
	\pivot{4}{4}
	\cleanup{4}{5}{7}
\end{scope}

\begin{scope}[xshift=8cm,yshift=-2.4cm]
	\draw[<-,shorten >= 0.05cm,shorten <= 0.05cm]
		\punkt{-4}{3} -- \punkt{0}{3};
	\zeile0bwwwbbbb \inverse0bwwwwwww
	\zeile1wbwwbwww \inverse1bbwwwwww
	\zeile2wwbwwbww \inverse2wbbwwwww
	\zeile3wwwbwwbw \inverse3wwbbwwww
	\zeile4wwwwbwwb \inverse4wwwbbwww
	\zeile5wwwwwwbw \inverse5bwwbwbww
	\zeile6wwwwwwwb \inverse6wbwwbwbw
	\zeile7wwwwwbww \inverse7wwbwbwwb
	\rechteck
\end{scope}

\begin{scope}[xshift=4cm,yshift=-2.4cm]
	\draw[<-,shorten >= 0.05cm,shorten <= 0.05cm]
		\punkt{-4}{3} -- \punkt{0}{3};
	\zeile0bwwwbbbb \inverse0bwwwwwww
	\zeile1wbwwbwww \inverse1bbwwwwww
	\zeile2wwbwwbww \inverse2wbbwwwww
	\zeile3wwwbwwbw \inverse3wwbbwwww
	\zeile4wwwwbwwb \inverse4wwwbbwww
	\zeile5wwwwwbww \inverse5wwbwbwwb
	\zeile6wwwwwwbw \inverse6bwwbwbww
	\zeile7wwwwwwwb \inverse7wbwwbwbw
	\rechteck
	\cleanup{7}{7}{-1}
\end{scope}

\begin{scope}[xshift=0cm,yshift=-2.4cm]
	\zeile0bwwwbbbw \inverse0bbwwbwbw
	\zeile1wbwwbwww \inverse1bbwwwwww
	\zeile2wwbwwbww \inverse2wbbwwwww
	\zeile3wwwbwwbw \inverse3wwbbwwww
	\zeile4wwwwbwww \inverse4wbwbwwbw
	\zeile5wwwwwbww \inverse5wwbwbwwb
	\zeile6wwwwwwbw \inverse6bwwbwbww
	\zeile7wwwwwwwb \inverse7wbwwbwbw
	\rechteck
	\cleanup{6}{6}{-1}
	\draw[->,shorten >= 0.05cm,shorten <= 0.05cm]
		\punkt{8}{7} -- \punkt{8}{11};
\end{scope}

\begin{scope}[xshift=0cm,yshift=-4.8cm]
	\zeile0bwwwbbww \inverse0wbwbbbbw
	\zeile1wbwwbwww \inverse1bbwwwwww
	\zeile2wwbwwbww \inverse2wbbwwwww
	\zeile3wwwbwwww \inverse3bwbwwbww
	\zeile4wwwwbwww \inverse4wbwbwwbw
	\zeile5wwwwwbww \inverse5wwbwbwwb
	\zeile6wwwwwwbw \inverse6bwwbwbww
	\zeile7wwwwwwwb \inverse7wbwwbwbw
	\rechteck
	\cleanup{5}{5}{-1}
\end{scope}

\begin{scope}[xshift=4cm,yshift=-4.8cm]
	\draw[->,shorten >= 0.05cm,shorten <= 0.05cm]
		\punkt{-4}{3} -- \punkt{0}{3};
	\zeile0bwwwbwww \inverse0wbbbwbbb
	\zeile1wbwwbwww \inverse1bbwwwwww
	\zeile2wwbwwwww \inverse2wbwwbwwb
	\zeile3wwwbwwww \inverse3bwbwwbww
	\zeile4wwwwbwww \inverse4wbwbwwbw
	\zeile5wwwwwbww \inverse5wwbwbwwb
	\zeile6wwwwwwbw \inverse6bwwbwbww
	\zeile7wwwwwwwb \inverse7wbwwbwbw
	\rechteck
	\cleanup{4}{4}{-1}
\end{scope}

\begin{scope}[xshift=8cm,yshift=-4.8cm]
	\draw[->,shorten >= 0.05cm,shorten <= 0.05cm]
		\punkt{-4}{3} -- \punkt{0}{3};
	\zeile0bwwwwwww \inverse0wwbwwbwb
	\zeile1wbwwwwww \inverse1bwwbwwbw
	\zeile2wwbwwwww \inverse2wbwwbwwb
	\zeile3wwwbwwww \inverse3bwbwwbww
	\zeile4wwwwbwww \inverse4wbwbwwbw
	\zeile5wwwwwbww \inverse5wwbwbwwb
	\zeile6wwwwwwbw \inverse6bwwbwbww
	\zeile7wwwwwwwb \inverse7wbwwbwbw
	\rechteck
\end{scope}

\end{tikzpicture}
\end{document}

