Grafične transformacije

Izvedemo lahko tudi več transformacij zapored. Če uporabimo skaliranje in translacijo zapored, lahko obliko prestavimo in povečamo oziroma pomanjšamo hkrati.

Poglejmo, kaj se zgodi, če zamenjamo vrednosti $x$ in $y$ vseh oglišč, ki sestavljajo obliko.

Transformacija v prejšnji simulaciji je preprosta rotacija, ki je uporabna za nastavitev položaja predmeta v prizoru oziroma sceni ali določanje kota navidezne kamere.

Ročno vnašanje in spreminjanje koodrinat je neučinkovito. Na srečo obstaja veliko boljši način, ki ga bomo spoznali v nadaljevanju.

Transformacije z matrikami

V računalniški grafiki transformacije običajno izvajamo z uporabo matrične aritmetike, kar je krajši zapis, ki pomeni izvajanje številnih preprostih aritmetičnih operacij naenkrat. Matrika za dvodimenzionalne transformacije, ki smo jih spoznali do sedaj, vsebuje štiri vrednosti. Dvodimenzionalno transformacijo skaliranja, pri kateri vsako vrednost $x$ in $y$ podvojimo, z matriko zapišemo kot: $$ \begin{bmatrix} 2 & 0 \\ 0 & 2 \\ \end{bmatrix} $$ kjer zgornja leva vrednost pomeni pomnoži vse vrednosti $x$ z 2, spodnja desna vrednost pa pomnoži vse vrednosti $y$ z 2.

Od tu dalje imej interkativno simulacijo odprto v drugem oknu in je ne zapiraj. Tako boš lahko sledil(-a) besedilu in operacije sproti izvajal(-a) oziroma preverjal(-a) v interaktivni simulaciji.

Oglejmo si podrobneje, kaj se pravzaprav dogaja. Vsako točko oblike lahko predstavimo z njenima koordinatama $x$ in $y$. Zgornja desna točka oblike v interaktivni simulaciji je točka $(2, 3)$ v koordinatnem sistemu.

Ko uporabljamo transformacijo skaliranja to dejansko pomeni, da izvajamo množenje matrik. Na primer skalirajmo točko $(2, 3)$ s faktorjem $2$, kot v prejšnji interaktivni simulaciji: $$ \begin{bmatrix} 2 & 0 \\ 0 & 2 \\ \end{bmatrix} \times \begin{bmatrix} 2 \\ 3 \\ \end{bmatrix} = \begin{bmatrix} 4 \\ 6 \\ \end{bmatrix} $$

Množenje matrik

Tako dobimo nov položaj $(4, 6)$ zgornje desne točke, ki se ujema s točko v prejšnji interaktivni simulaciji po uporabi matrike skaliranja! Na enak način uporabimo množenje z matriko na vseh sedmih točkah dane oblike.