Geometrie/Afinní transformace souřadnic
Geometrické transformace jsou jedněmi z nejčastěji používaných operací v počítačové grafice. Mezi afinní operace patří posunutí, otáčení, změna měřítka, zkosení a operace vzniklé jejich skládáním.
Vyjádření editovat
Afinní transformace jsou vyjádřeny vztahem P' = P A, kde P je bodem, který transformujeme maticí A. Platí P' = [x' y' w'] = P A = [x y w] A. Matice A reprezentuje jednotlivé transformace, které mohou být i skládány.
Geometrické afinní transformace souřadnic nám umožňují bod P posunout, otočit nebo změnit jeho měřítko (týká se objektů, z těchto bodů složených).
Podrobnější rozepsání těchto transformací a jejich skládání viz níže.
Afinní geometrické transformace souřadnic editovat
Posunutí editovat
Transformace posunutí nebo také translace (move, translation) bodu P[X, Y] je určena vektorem posunutí
Aplikací této transformace na bod P získáme bod P' o souřadnicích
Maticové vyjádření transformace posunutí má pro homogenní souřadnice tvar
Otáčení editovat
Otáčením (rotation) bodu P kolem počátku soustavy souřadnic O=[0,0] o orientovaný úhel α získáme bod P' o souřadnicích
Maticové vyjádření transformace otáčení má pro homogenní souřadnice tvar
Změna měřítka editovat
Změna měřítka (scale, zoom) je změnou velikosti objektu ve směru souřadnicových os. Pokud je absolutní hodnota koeficientu měřítkování v intervalu (0, 1), dochází ke zmenšení transformovaného objektu. Je-li absolutní hodnota koeficientu větší než jedna, dojde k prodloužení, je-li znaménko záporné, dochází k prodloužení či zmenšení v opačném směru.
Rovnice pro změnu měřítka bodu P mají tvar
kde Sx je koeficient změny měřítka ve směru souřadnicové osy x a Sy je koeficient změny měřítka ve směru souřadnicové osy y.
Odpovídající transformační matice má pro homogenní souřadnice tvar
Červená křivka: Scale X = Scale Y = 1,2
Zelená křivka: Scale X = Scale Y = 0,45
Skládání transformací editovat
Při postupném aplikování transformací na bod P záleží na pořadí, v jakém se transformace provádějí. Je rozdíl, jestliže bod posuneme a poté otočíme okolo počátku souřadnicového systému, nebo zda bod nejprve otočíme a poté provedeme transformaci posunutí. Transformaci vzniklou složením z více transformací lze vyjádřit jedinou maticí, kterou získáme postupným násobením matic, reprezentujících dílčí transformace. Protože záleží na pořadí transformací, záleží i na pořadí násobení matic. Jelikož používáme zápis P'=PA , musíme matice reprezentující jednotlivé transformace násobit zprava.
Platí, že pokud násobíme transformační matici, maticí k ní inverzní, dostaneme původní (netransformované) souřadnice. Jinak řečeno inverzní transformace je reprezentována inverzní maticí.
Příklad
Odvození transformační matice pro otáčení o úhel α okolo bodu R[xR ,yR]
Operaci provedeme následujícím způsobem: bod R nejprve přemístíme pomocí matice AM do počátku souřadnicového systému, poté provedeme otočení o úhel α pomocí matice AR a nakonec bod přemístíme zpět do původní polohy inverzní matice A-1M. Vše provedeme tak, že vytvoříme matici, která vznikne složením matic vyjadřujících všechny tři operace. Výsledná matice je součin .
(Pozn. Výše uvedené vztahy a vzorce jsou vztaženy ke 2D. Jejich 3D verze jsou podobné a z nich lehce odvoditelné.)
Autoři editovat
Tento text vypracovali studenti Univerzity Palackého v Olomouci katedry Matematické informatiky jako zápočtový úkol do předmětu Počítačová geometrie.