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

Rysowanie kostek z literami

Do rysowania ścian kostki (równoległoboków z literami) wykorzystywane są przekształcenia afiniczne. W pakiecie TikZ przekształcenie afiniczne definiuje się tak:

\pgftransformcm{a}{c}{b}{d}{\pgfpoint{e}{f}}

Powyższe przekształcenie zapisane zapisane tradycyjnie wygląda tak: $A(x,y)=(ax+by+e,cx+dy+f)$, w szczególności $A(1,0)=(a,c)+(e,f),\,\,A(0,1)=(b,d)+(e,f)$.

Polecenie \pgfpoint wymaga podania jednostek.

Przykład:

\pgfpoint{2cm}{1cm}

Po zdefiniowaniu przekształcenia afinicznego $A$, polecenia

\draw figura
\fill figura
rysują $A(figura)$.

Po definicjach

\pgftransformcm{a}{c}{b}{d}{\pgfpoint{e}{f}} – przekszatłcenie A
…
\pgftransformcm{g}{h}{i}{j}{\pgfpoint{k}{l}} – przekszatłcenie B
pakiet TikZ korzysta ze złożenia $A\cdot B$. Na ogół jest to niepożądane, warto każde polecenie pgfrtansformcm poprzedzać poleceniem pgftransformreset.

Definicje przekształceń afinicznych są „lokalne” – przekształcenie zdefiniowane w otoczeniu tikzpicture nie jest stosowane w kolejnych otoczeniach tikzpicture.

letters (unroundedletters)

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

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

c = 3
leftScale = 1.0
rightScale = 1.0
a = leftScale*c
b = rightScale*c
α = 20°
β = 20°

Do zmiany wartości domyślnych służą polecenia:

\edef\size{nowa_wartość_c}
\computeLeft{nowa_wartość_α}{nowa_wartość_leftScale}
\computeRight{nowa_wartość_β}{nowa_wartość_rightScale}

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

Makrodefinicje letters i unroundeddletters rysują kostkę skierowaną krawędzią do przodu. Mają cztery argumenty:

Przykłady:

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

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

frontletters (unroundedfrontletters)

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

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

a = 3
frontScale = 0.75
b = frontScale*a
β = 36°

Do zmiany wartości domyślnych służą polecenia:

\edef\size{nowa_wartość_a}
\computeFront{nowa_wartość_β}{nowa_wartość_frontScale}

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

Makrodefinicje frontletters i unroundedfrontletters rysują kostkę skierowaną ścianą do przodu. Mają cztery argumenty:

Przykłady:

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:

Przykład:

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