Rysowanie kostek: dice(unroundeddice) |
leftfrontdice(unroundedleftfrontdice) | frontdice(unroundedfrontdice) |
rightfrontdice(unroundedrightfrontdice)
Rysowanie ścian: face(unroundedface) | onedot |
twodots | twodotsrotate | threedots |
threedotsrotate | fourdots | sixdots |
sixdotsrotate
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 α = 20° β = 20°
Makrodefinicje rysujące korzystają ze zmiennej size i kilku zmiennych pomocniczych, nie korzystają ze zmiennych
a, b, α, β, leftScale i rightScale.
Zmianę wartości domyślnych uzyskujemy poleceniami:
\edef\size{«nowa_wartość_size»}
\computeLeft{«nowa_wartość_α»}{«nowa_wartość_leftScale»}
\computeRight{«nowa_wartość_β»}{«nowa_wartość_rightScale»}size, pozostałe dwa zmieniają wartości zmiennych pomocniczych.
Makrodefinicja \dice korzysta z makrodefinicji \face, a makrodefinicja \unroundeddice z makrodefinicji
\unroundedface.
Makrodefinicje \dice i \unroundeddice rysują kostkę skierowaną krawędzią do przodu. Mają cztery argumenty: pierwsze
dwa to współrzędne punktu $P$, trzeci to ciag trójelementowy, jego elementy informują o liczbie kropek i kolorze widocznych ścian.
Kolejność ścian: prawa, lewa, górna. Czwarty parametr to kolor kropek. Krawędzie są czarne.
\dice{3}{0}{{4/red,5/red,2/red}}{white}
\edef\size{2}
\dice{6}{0}{{4/red,5/red,2/red}}{white}
Lewa kostka ma domyślną długość krawędzi ($3$), polecenie
\edef\size{2}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 β = 36°
Makrodefinicje rysujące korzystają ze zmiennej size i kilku zmiennych pomocniczych, nie korzystają ze zmiennych
b, β i frontScale.
Zmianę wartości domyślnych uzyskujemy poleceniami:
\edef\size{«nowa_wartość_size»}
\computeFront{«nowa_wartość_β»}{«nowa_wartość_frontScale»}size, drugie zmienia wartości zmiennych pomocniczych.
Makrodefinicja leftfrontdice korzysta z makrodefinicji face, a makrodefinicja leftunroundedfrontdice z
makrodefinicji unroundedface.
Makrodefinicje leftfrontdice i leftunroundedfrontdice rysują kostkę skierowaną lewą ścianą do przodu. Mają cztery
argumenty: pierwsze dwa to współrzędne prawego dolnego wierzchołka ściany frontowej (punktu $P$), trzeci to trójelementowyciag, jego elementy
informujś o liczbie kropek i kolorach widocznych ścian. Kolejność ścian: boczna, frontowa, górna. Czwarty parametr to kolor kropek. Krawędzie są
czarne.
\leftfrontdice{3}{0}{{4/red,5/red,2/red}}{white}
\leftfrontdice{6}{0}{{4/red,5/red,2/red}}{white}
Makrodefinicja frontdice działa identycznie jak leftfrontdice, a leftunroundedfrontdice identycznie jak
leftunroundedfrontdice. Istnieją ze względu na wsteczną zgodność.
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 β = 36°
Makrodefinicje rysujące korzystają ze zmiennej size i kilku zmiennych pomocniczych, nie korzystają ze zmiennych
b, β i frontScale.
Zmianę wartości domyślnych uzyskujemy poleceniami:
\edef\size{«nowa_wartość_size»}
\computeFront{«nowa_wartość_β»}{«nowa_wartość_frontScale»}size, drugie zmienia wartości zmiennych pomocniczych.
Makrodefinicja rightfrontdice korzysta z makrodefinicji face, a makrodefinicja rightunroundedfrontdice z
makrodefinicji unroundedface.
Makrodefinicje leftfrontdice i leftunroundedfrontdice rysują kostkę skierowaną prawą ścianą do przodu. Mają cztery
argumenty: pierwsze dwa to współrzędne lewego dolnego wierzchołka ściany frontowej (punktu $P$), trzeci to trójelementowy ciąg, jego elementy
informują o liczbie kropek i kolorach widocznych ścian. Kolejność ścian: boczna, frontowa, górna. Czwarty parametr to kolor kropek. Krawędzie są
czarne.
\rightfrontdice{6}{0}{{4/red,5/blue,2/red}}{white}
\rightfrontdice{3}{0}{{4/red,5/blue,2/red}}{white}
Makrodefinicja face rysuje zaokrąglony kwadrat jednostkowy z kropkami. Ma cztery argumenty: pierwszy to kolor kropek, drugi to
kolor wypełnienia kwadratu – krawędzie są czarne, trzeci to liczba kropek (musi być z zakresu $1$-$6$), czwarty argument decyduje o położeniu
kropek (dopuszczalne wartości to $1$ i $-1$, nie ma wpływu na wygląd kwadratu gdy liczba kropek wynosi $1$, $4$ lub $5$).
\face{white!50!red}{red}{6} {1}
\pgftransformcm{1}{0}{0}{1}{\pgfpoint{3cm}{0cm}}
\face{white!50!red}{red}{6}{-1}
\pgftransformreset
\pgftransformcm{0.71*3}{0.71*3}{-0.71*3}{0.71*3}{\pgfpoint{5cm}{0cm}}
\face{white!50!red}{red}{6}{1}
Makrodefinicja unroundedface różni się od face tylko tym że rysuje „niezaokrąglony” kwadrat.
\unroundedface{white!50!red}{red}{3}{1}
\pgftransformreset
\pgftransformcm{0.71*3}{0.71*3}{-0.71*3}{0.71*3}{\pgfpoint{3cm}{0cm}}
\unroundedface{white!50!red}{red}{3}{-1}
Każda z tych makrodefinicji rysuje pewną ilość kropek (kółek o promieniu 0,05). Wszystkie mają jeden argument: kolor kropki.
| Polecenie | Współrzędne środków kropek |
|---|---|
\onedot |
$(0,5;\, 0,5)$ |
\twodots |
$(0,3;\, 0,3),\, (0,7;\, 0,7)$ |
\twodotsrotate |
$(0,3;\, 0,7),\, (0,7;\, 0,3)$ |
\threedots |
$(0,25;\, 0,25),\, (0,5;\, 0,5),\, (0,75;\, 0,75)$ |
\threedotsrotate |
$(0,25;\, 0,75),\, (0,5;\, 0,5),\, (0,75;\, 0,25)$ |
\fourdots |
$(0,3;\, 0,3),\, (0,3;\, 0,7),\, (0,7;\, 0,3),\, (0,7;\, 0,7)$ |
\sixdots |
$(0,3;\, 0,25),\, (0,3;\, 0,5),\, (0,3;\, 0,75),\, (0,7;\, 0,25),\, (0,7;\, 0,5),\, (0,7;\, 0,75)$ |
\sixdotsrotate |
$(0,25;\, 0,3),\, (0,25;\, 0,7),\, (0,5;\, 0,3),\, (0,5;\, 0,7),\, (0,75;\, 0,3),\, (0,75;\, 0,7)$ |
Polecenia rysującego pięć kropek nie ma. Pięć kropek jest rysowanych sekwencją poleceń: onedot i fourdots.
\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}
