Rovinné přetvoření Rovinné přetvoření, neboli, jak se také často nazývá, geometrická transformace je vlastně lineární zobrazení v prostoru s nějakou soustavou souřadnic. Jde v něm o přepočet souřadnic v rámci tohoto zobrazení. Budeme se zabývat jen situací ve 2D. Zde lze najít několik základních typů rovinného přetvoření, při kterých se úsečka zobrazuje na úsečku: Posunutí (translace) Otáčení (rotace) Změna měřítka (scale, zoom) Zkosení (shear) Souměrnost Každé obecné rovinné přetvoření lze převést na kombinaci těchto uvedených. Posunutí (translace) Posunutí je určeno vektorem posunutí (, ). Pozor, u obou složek vektoru nejde o mocninu, ale o vyjádření toho, že jde o složku vektoru p. Bod (, ) se zobrazí na bod (, ) takto: + + + Posunutí nelze v kartézské soustavě reprezentovat maticově. Důvodem je, že hodnoty složek vektoru posunutí se pouze přičítají bez násobení hodnotou jakékoli jiné souřadnice. Lze to však udělat v homogenních souřadnicích, kdy zavádíme navíc jednu doplňkovou dimenzi, která je použita jako pracovní a obvykle vyjadřuje rovnici. Pak lze psát: (,, ), (,, ) Totéž lze vyjádřit i řádkově ( ) ( ) A ještě jednou totéž v maticovém tvaru se zavedením matice soustavy (, ), ( ) (, )
Otáčení (rotace) Otáčení kolem počátku Otáčení bodu kolem počátku je určeno orientovaným úhlem otočení. Bod (, ) se zobrazí na bod (, ) takto (odvození těchto vzorců je uvedeno na konci tohoto textu): cos sin sin + cos To lze vyjádřit maticově cos sin sin cos ( ) cos sin sin cos ( ) ( ) Otáčení kolem obecného bodu Otáčení kolem obecného bodu (, ) o orientovaný úhel otočení se provádí rozkladem na elementární transformace. Při tom je důležité zachovat správné pořadí skládání:. Celý transformovaný objekt posuneme tak, aby bod byl v počátku soustavy 2. Otočíme objekt o úhel 3. Posuneme zpětně celý transformovaný objekt tak, aby bod byl na původním místě Vzhledem k tomu, že pro posunutí jsme museli zavést doplňkovou dimenzi, rozšíříme výše uvedenou matici ( ) o tuto doplňkovou dimenzi také, abychom mohli celou akci vyjádřit maticově v homogenních souřadnicích. Bude tedy (,, ), (,, ) cos sin sin cos ( ) cos sin sin cos ( ) ( ) Celé otočení kolem obecného bodu (, ) můžeme nyní vyjádřit takto (,, ) (, ) ( ) (, ) Celý postup dokumentuje série obrázků 2
Změna měřítka (scale, zoom) Změna měřítka je změna velikosti objektu ve směru souřadnicových os. Bod (, ) se zobrazí na bod (, ) takto: Zde je koeficient změny měřítka ve směru osy a je koeficient změny měřítka ve směru osy., ( ), (,, ), (,, ), ( ), 3
Zkosení (shear) Změna měřítka je změna velikosti objektu ve směru souřadnicových os. Bod (, ) se zobrazí na bod (, ) takto: + h + h Zde h je koeficient míry zkosení ve směru osy koeficient míry zkosení ve směru osy. h h a h je h, h h ( ) h h, h (,, ), (,, ) h h h h, h h h ( ) h h, Souměrnost Souměrnost je zvláštní případ změny měřítka (absolutní hodnota koeficientů je rovna jedné) v důsledku spojená se změnou znamének některých souřadnic. Středová souměrnost Jde o souměrnost podle počátku. Zde, Bod (, ) se zobrazí na bod (, ) takto: Zde je koeficient změny měřítka ve směru osy a je koeficient změny měřítka ve směru osy. 4
( ) (,, ), (,, ) ( ), Souměrnost podle osy Jde o souměrnost podle osy. V tomto konkrétním případě, Bod (, ) se zobrazí na bod (, ) takto: Zde je koeficient změny měřítka ve směru osy a je koeficient změny měřítka ve směru osy. ( ) (,, ), (,, ) ( ) 5
Souměrnost podle osy Jde o souměrnost podle osy. V tomto konkrétním případě, Bod (, ) se zobrazí na bod (, ) takto: Zde je koeficient změny měřítka ve směru osy a je koeficient změny měřítka ve směru osy. ( ) (,, ), (,, ) ( ) Odvození vzorce pro otáčení Chceme odvodit vztahy pro otáčení kolem počátku. cos sin sin + cos Odvození je snadné při převedení na duální úlohu. Bod ponecháme na svém místě a otočíme souřadné osy proti směru úhlu otáčení (původní souřadný systém je vyznačen se šikmými osami, systém po otočení má osy rovnoběžné se stranami papíru). Dostaneme situaci na obrázku. Oranžovo bledě modrý obdélník je pravoúhlý se stranami a. U něj jsou vyznačeny shodné úhly. Z vlastností funkcí sinus a cosinus jsou odvozeny velikosti modrých a červených úseček. Pomocí odčítání a sčítání již přímo dostáváme hodnoty souřadnic po otočení. 6