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.
Obsah |
[editovat] Vyjádření
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.
[editovat] Afinní geometrické transformace souřadnic
[editovat] Posunutí
Transformace posunutí nebo také translace (move, translation) bodu P[X, Y] je určena vektorem posunutí
p = (XT,YT) = (X' - X,Y' - Y)
Aplikací této transformace na bod P získáme bod P' o souřadnicích
X' = X + XT
Y' = Y + YT
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→.
[editovat] Otáčení
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
X' = Xcosα - Ysinα
Y' = Xsinα + Ycosα
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.
[editovat] Změna měřítka
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
X' = SxX
Y' = SyY
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
[editovat] Skládání transformací
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é.)
[editovat] Autoři
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.