Makrodefinicja: letters(unroundedletters) | frontletters(unroundedfrontletters)
Makrodefinicje pomocnicze: face(unroundedface)

Rysowanie kostek z literami

\letters (\unroundedletters)

Prostopadłościan opisany na kostce wygląda tak:

Wartości domyślne są następujące:

size = 3
leftScale = 1.0
rightScale = 1.0
a = leftScale*size
b = rightScale*size
alfa = 20°
beta = 20°

Makrodefinicje rysujące korzystają ze zmiennej size i kilku zmiennych pomocniczych, nie korzystają ze zmiennych a, b, alfa, beta, leftScale i rightScale.

Zmianę wartości domyślnych uzyskujemy poleceniami:

\edef\size {nowa_wartość_size}
\computeLeft {nowa_wartość_alfa} {nowa_wartość_leftScale}
\computeRight {nowa_wartość_beta} {nowa_wartość_rightScale}
Pierwsze polecenie zmienia wartość zmiennej size, pozostałe dwa zmieniają wartości zmiennych pomocniczych.

Makrodefinicja letters korzysta z makrodefinicji face, a makrodefinicja unroundedletters z makrodefinicji unroundedface.

Makrodefinicje letters i unroundedletters rysują kostkę skierowaną krawędzią do przodu. Mają pięć argumentów: pierwsze dwa to współrzędne najniższego punktu (punkt $P$), trzeci to ciag trzech liter, które zostaną wypisane na widocznych ścianach. Kolejność: prawa ściana, lewa ściana, górna ściana. Czwarty parametr to kolor napisów, a piąty to kolor wypełnienia ścian – krawędzie są czarne.

\fontsize {0.8cm} {0.96cm}\selectfont 
\unroundedletters {4} {0} {{A,B,C}} {blue} {yellow}
\edef\size {2}
\unroundedletters {6.5} {0} {{A,B,C}} {blue} {yellow}
\fontsize {0.6cm} {0.72cm}\selectfont \letters {4} {0} {{$\alpha$,$\beta$,$\gamma$}} {blue} {yellow} \edef\size {2} \letters {6.5} {0} {{$\alpha$,$\beta$,$\gamma$}} {blue} {yellow}

\frontletters (\unroundedfrontlettersletters)

Prostopadłościan opisany na kostce wygląda tak:

Wartości domyślne są następujące:

size = 3
frontScale = 0.75
b = frontScale*size
beta = 36°

Makrodefinicje rysujące korzystają ze zmiennej size i kilku zmiennych pomocniczych, nie korzystają ze zmiennych b, beta i frontScale.

Zmianę wartości domyślnych uzyskujemy poleceniami:

\edef\size {nowa_wartość_size}
\computeFront {nowa_wartość_beta} {nowa_wartość_frontScale}
Pierwsze polecenie zmienia wartość zmiennej size, drugie zmienia wartości zmiennych pomocniczych.

Makrodefinicja frontletters korzysta z makrodefinicji face, a makrodefinicja unroundedfrontletters z makrodefinicji unroundedface.

Makrodefinicje frontletters i unroundedfrontdletters rysują kostkę skierowaną lewą ścianą do przodu. Mają pięć argumentów: pierwsze dwa to współrzędne niższego punktu wspólnego dla ścian przedniej i bocznej(punkt $P$), trzeci to ciag trzech liter, które zostaną umieszczone na widocznych ścianach. Kolejność: ściana boczna, ściana przednia, ściana górna. Czwarty parametr to kolor napisów, a piąty to kolor wypełnienia ścian – krawędzie są czarne.

\fontsize {0.8cm} {0.96cm}\selectfont 
\unroundedfrontletters {4} {0} {{A,B,C}} {blue} {yellow}
\edef\size {2}
\unroundedfrontletters {6} {0} {{A,B,C}} {blue} {yellow}
\fontsize {0.6cm} {0.72cm}\selectfont \frontletters {4} {0} {{$\alpha$,$\beta$,$\gamma$}} {blue} {yellow} \edef\size {2} \frontletters {6} {0} {{$\alpha$,$\beta$,$\gamma$}} {blue} {yellow}

Lewe kostki mają domyślną długość krawędzi pionowej ($3$), polecenie

\edef\size {2}
zmieniło długość tej krawędzi na $2$.

\face (\unroundedface)

Makrodefinicja face rysuje zaokrąglony kwadrat jednostkowy z literą. Ma cztery argumenty: pierwszy to kolor napisu, drugi to kolor wypełnienia kwadratu – krawędzie są czarne, trzeci to litera, a czwarty decyduje czy narysowana zostanie litera, czy jej odbicie symetryczne względem osi $Oy$.

\face {white} {red} {B} {1}
\pgftransformreset 
\pgftransformcm {1} {0} {0} {1} {\pgfpoint {3cm} {0}}
\face {white} {red} {B} {-1}

Makrodefinicja unroundedface różni się od face tylko tym że rysuje „niezaokrąglony” kwadrat.

\unroundedface {black} {white!50!red} {B} {1}
\pgftransformreset 
\pgftransformcm {1} {0} {0} {1} {\pgfpoint {3cm} {0}}
\unroundedface {black} {white!50!red} {B} {-1}