Přeskočit na obsah

Grafické transformace

Z Wikipedie, otevřené encyklopedie

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 .

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:

Literatura

[editovat | editovat zdroj]

Související články

[editovat | editovat zdroj]

Externí odkazy

[editovat | editovat zdroj]