\documentclass{mwart}

\usepackage{polski}
\usepackage[utf8]{inputenc}
\usepackage{tikz}

\input{NaszeLiczniki}
\input{DicesPreamble}
\newcounter{pomoc}

\begin{document}

Kostka bez polecenia \textit{dice}. Rysowana jest naprzemiennym wywoływaniem poleceń \textit{pgftransformcm} i \textit{face}:\\\\
\begin{tikzpicture}
  \pgftransformcm{0.91}{0.33}{0}{1}{\pgfpoint{4cm}{0cm}}
  \face{black}{white}{3};
  \pgftransformreset
  \pgftransformcm{-0.91}{0.33}{0}{1}{\pgfpoint{4cm}{0cm}}
  \face{black}{white}{2};
  \pgftransformreset
  \pgftransformcm{0.91}{0.33}{-0.91}{0.33}{\pgfpoint{4cm}{1cm}}
  \face{black}{white}{5};
\end{tikzpicture}
\vspace{1cm}

Wieża z dwóch kostek -- zmienione kąty i długości krawędzi ukośnych\\wartości domyślne: $1$ i $20^\circ$\\po zmianie: z lewej strony: $0.75$ i $45^\circ$, z prawej $0.8$ i $30^\circ$\\\\
\begin{tikzpicture}
  \computeLeft{45}{0.75}
  \computeRight{30}{0.8}
  \dice{4}{2}{{4/red, 5/red, 2/red}}{white}
  \dice{4}{5}{{3/white, 6/white, 1/white}}{blue}
\end{tikzpicture}
\vspace{1cm}

Dwie ,,prawie'' identyczne kostki, druga jest przesunięta,  pomniejszona\\ i ,,niezaokrąglona'':\\\\
\begin{tikzpicture}
  \dice{3}{0}{{4/red, 5/red, 2/red}}{white}
  \edef\size{2}
  \unroundeddice{6}{0}{{4/red, 5/red, 2/red}}{white}
\end{tikzpicture}
\vspace{1cm}

\newpage
Dwie identyczne kostki, druga jest przesunięta w prawo i ,,rozjaśniona'':\\\\
\begin{tikzpicture}
  \frontdice{3}{0}{{4/red, 5/red, 2/red}}{white}
  \frontdice{6}{0}{{4/red!50!white, 5/red!50!white, 2/red!50!white}}{white}
\end{tikzpicture}
\vspace{1cm}

Trzy kostki, druga i trzecia są przesunięte w przód:\\\\
\begin{tikzpicture}
  \pgfmathparse{12 - \frontCos*\size}
  \edef\deltaX{\pgfmathresult}
  \pgfmathparse{12 - \frontSin*\size}
  \edef\deltaY{\pgfmathresult}
  \frontdice{12}{12}{{4/red, 5/red, 2/red}}{white}
  \frontdice{\deltaX}{\deltaY}{{3/red, 6/red, 5/red}}{white}
  \pgfmathparse{12 - 2*\frontCos*\size}
  \edef\deltaX{\pgfmathresult}
  \pgfmathparse{12 - 2*\frontSin*\size}
  \edef\deltaY{\pgfmathresult}
  \frontdice{\deltaX}{\deltaY}{{1/red, 5/blue!50!white, 4/blue!50!white}}{white}
\end{tikzpicture}
\vspace{1cm}

,,Trójkąt'' z kostek:\\
Kąt nachylenia zmieniony z $36^{\circ}$ (kąt domyślny) na $45^{\circ}$, ,,wyłączone'' zaokrąglanie \\\\
\begin{tikzpicture}
  \computeFront{45}{0.75}	
  \edef\size{1.5}
  \setcounter{pomoc}{0}
  \foreach \k in {1,,,4}
  {
    \pgfmathparse{\value{pomoc}*\size}
    \edef\shift{\pgfmathresult}
    \unroundedfrontdice{\shift}{10}{{1/white, 2/white, 3/white}}{red}
    \addtocounter{pomoc}{1}
  }
  \setcounter{pomoc}{0}
  \foreach \k in {1,2,3}
  {
    \pgfmathparse{\value{pomoc}*\size}
    \edef\shift{\pgfmathresult}
    \pgfmathparse{\shift - \frontCos*\size}
    \edef\deltaX{\pgfmathresult}
    \pgfmathparse{10 - \frontSin*\size}
    \edef\deltaY{\pgfmathresult}
    \unroundedfrontdice{\deltaX}{\deltaY}{{2/white, 4/white, 6/white}}{red}
    \addtocounter{pomoc}{1}
  }
  \setcounter{pomoc}{0}
  \foreach \k in {1,1}
  {
    \pgfmathparse{\value{pomoc}*\size}
    \edef\shift{\pgfmathresult}
    \pgfmathparse{\shift - 2*\frontCos*\size}
    \edef\deltaX{\pgfmathresult}
    \pgfmathparse{10 - 2*\frontSin*\size}
    \edef\deltaY{\pgfmathresult}    
    \unroundedfrontdice{\deltaX}{\deltaY}{{5/white, 1/white, 4/white}}{red}
    \addtocounter{pomoc}{1}    
  }
  \edef\shift{0}
  \pgfmathparse{\shift - 3*\frontCos*\size}
  \edef\deltaX{\pgfmathresult}
  \pgfmathparse{10 - 3*\frontSin*\size}
  \edef\deltaY{\pgfmathresult}    
  \unroundedfrontdice{\deltaX}{\deltaY}{{6/white, 3/white, 5/white}}{red}
\end{tikzpicture}

\newpage
Dwa kwadraty, po narysowaniu pierwszego definiowane jest przekształcenie afiniczne
będące złożeniem obrotu, jednokładności i przesunięcia:\\\\
\begin{tikzpicture}
  \face{white!50!red}{red}{6}
  \pgftransformreset
  \pgftransformcm{0.71*3}{0.71*3}{-0.71*3}{0.71*3}{\pgfpoint{3cm}{0cm}}
  \face{white!50!red}{red}{6}
\end{tikzpicture}
\vspace{1cm}

Zastąpienie polecenia \textit{face} poleceniem \textit{unroundedface}\\\\
\begin{tikzpicture}
  \unroundedface{white!50!red}{red}{6}
  \pgftransformreset
  \pgftransformcm{0.71*3}{0.71*3}{-0.71*3}{0.71*3}{\pgfpoint{3cm}{0cm}}
  \unroundedface{white!50!red}{red}{6}
\end{tikzpicture}

\vspace{1cm}

Kwadraty nie są rysowane poleceniami \textit{...dots}, zostały dorysowane by pokazać położenie kropek względem początku układu (dolnego lewego wierzchołka kwadratu):\\\\
\begin{tikzpicture}
  \pgftransformreset
  \pgftransformcm{2}{0}{0}{2}{\pgfpoint{0}{0}}
  \draw rectangle(1,1);
  \onedot{green}
  \twodots{red}
  \pgftransformcm{1}{0}{0}{1}{\pgfpoint{1.5cm}{0}}
  \draw rectangle(1,1);
  \threedots{green}
  \pgftransformcm{1}{0}{0}{1}{\pgfpoint{1.5cm}{0}}
  \draw rectangle(1,1);
  \fourdots{green}
  \pgftransformcm{1}{0}{0}{1}{\pgfpoint{1.5cm}{0}}
  \draw rectangle(1,1);
  \sixdots{green}  
\end{tikzpicture}
  
\end{document}
