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í
editovatAfinní 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
editovatPosunutí
editovatTransformace 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í
editovatOtáč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
editovatZmě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
Skládání transformací
editovatPř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
editovatTento text vypracovali studenti Univerzity Palackého v Olomouci katedry Matematické informatiky jako zápočtový úkol do předmětu Počítačová geometrie.