Grafické transformace
Grafické transformace jsou transformace používané při přípravě grafické scény v počítačové grafice. Transformace (zde reprezentované transformační maticí) jsou aplikovány na bod (reprezentovaný v homogenních souřadnicích) jako násobení matic. Transformace objektu je aplikace transformace na všechny jeho body.
Dále uvažujme dvojrozměrný prostor s počátkem v , bod a bod , který vznikl z aplikací transformace .
Transformace zde uvedené se ale nemusí používat jen v počítačové grafice.
Homogenní souřadnice[editovat | editovat zdroj]
Homogenní souřadnice umožňují reprezentovat veškeré grafické operace jako násobení matic. Rotaci a změnu měřítka ve 2D lze reprezentovat jako násobení maticí 2×2, translaci však nikoli, proto se zavádí třetí, homogenní, souřadnice.
v homogenních souřadnicích má souřadnice právě tehdy, když platí:
Souřadnice se nazývá váha bodu. se často volí rovna 1.
Při zvoleném jsou tedy homogenní souřadnice .
Elementární transformace[editovat | editovat zdroj]
Rotace (otočení)[editovat | editovat zdroj]
Rotací rozumíme otočení bodu kolem středu vztažné soustavy o daný úhel. Rotace je určena pouze úhlem .
- .
Transformační matice pro rotaci:
Scaling (změna měřítka)[editovat | editovat zdroj]
Scaling je transformace změny měřítka. Je určena změnou velikosti podle souřadnicových os .
- .
Transformační matice pro změnu měřítka:
Jsou-li koeficienty záporné, dochází ke „změně měřítka v opačném směru“, tj. ke středové symetrii.
Pokud je , je možné se stejným efektem použít matici
Tzn. nastavením homogenní souřadnice lze dosáhnout změny měřítka.
Translace (posunutí)[editovat | editovat zdroj]
Translace je transformace posunu. Je určena vektorem posunutí , který udává, kterým směrem a jak daleko bude bod posunut. Tj. .
Transformační matice pro posun:
Shear (zkosení)[editovat | editovat zdroj]
Shear je transformace zkosení. Je určena mírou zkosení ve směrech souřadnicových os . .
Transformační matice pro zkosení:
Skládání transformací[editovat | editovat zdroj]
Transformace lze skládat do jediné matice postupným násobením elementárními transformacemi , což ve svých důsledcích vede na zrychlení vykreslování. Protože násobení matic není komutativní, záleží na pořadí, ve kterém se transformace provádějí. Násobení se provádí buďto jako nebo .
Inverze[editovat | editovat zdroj]
Pokud transformujeme nějaký bod transformační maticí na bod , lze tento bod transformovat zpět na bod vynásobením inverzní maticí (pokud existuje).
V případě, že je rotační matice, je matice k ní inverzní zároveň její transpozicí (kterou lze spočítat daleko rychleji). Inverzi translační matice dostaneme tak, že u této matice změníme znaménko u prvků nad hlavní diagonálou.
Projekce (promítání)[editovat | editovat zdroj]
Při zobrazování 3D objektů na 2D zařízení je třeba stanovit způsob, kterým se toto zobrazení provede. Tímto způsobem je projekce.
Dále uvažujme průmětnu jako rovinu danou rovnicí , tj. rovinu procházející bodem a kolmou na osu . Projekce popisuje, kde paprsek (přímka pocházející a průmětnou) protne průmětnu, tzn. který pixel na displeji se rozsvítí.
Projekci lze jako každou transformaci vyjádřit maticí. Tato bude přirozeně 4×4, neboť se jedná o 3D transformaci.
Paralelní[editovat | editovat zdroj]
Rovnoběžné promítání je de facto nárysem scény – dochází pouze k zanedbání souřadnice . Všechny paprsky svírají s průmětnou stejný úhel, obvykle .
Transformační matice pro paralelní projekci:
Perspektivní[editovat | editovat zdroj]
Při středovém promítání jsou všechny paprsky svedeny do středu promítání – vzdálenější objekty se jeví menší, rovnoběžky se sbíhají. Podle toho, kolik souřadnicových os průmětna protíná, se rozlišují:
- Jednoúběžníková
- Dvouúběžníková
- Tříúběžníková
Pokud střed projekce je , a průmětna v rovině procházející bodem , pak transformační matice pro perspektivní projekci je:
Odkazy[editovat | editovat zdroj]
Literatura[editovat | editovat zdroj]
- ŽÁRA, Jiří; BENEŠ, Bedřich; SOCHOR, Jiří; FELKEL, Petr. Moderní počítačová grafika. [s.l.]: Computer Press, 2005. Dostupné online. ISBN 80-251-0454-0. Kapitola Transformace, s. 541 až 554.
Související články[editovat | editovat zdroj]
- Matice přechodu – převod souřadnic vektorů nebo bodů z jedné souřadné soustavy do druhé
Externí odkazy[editovat | editovat zdroj]
Obrázky, zvuky či videa k tématu Matice přechodu na Wikimedia Commons