Geometrie/Afinní transformace souřadnic

Z Wikiknih

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 | editovat zdroj]

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 | editovat zdroj]

Posunutí[editovat | editovat zdroj]

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

Obr.1: Posunutí - Červená křivka je výsledkem posunutí původní modré křivky o vektor a.

Otáčení[editovat | editovat zdroj]

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

Obr.2: Otočení - Červená křivka je výsledkem otočení původní modré křivky o 1800.

Změna měřítka[editovat | editovat zdroj]

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

Obr.3: Změna měřítka - Červená křivka je výsledkem zvětšení původní modré křivky, zelená pak jejím zmenšením.
Červená křivka: Scale X = Scale Y = 1,2
Zelená křivka: Scale X = Scale Y = 0,45

Skládání transformací[editovat | editovat zdroj]

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 | editovat zdroj]

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.