Najděte afinní transformaci. Inverzní problémy afinních transformací nebo jeden krásný vzorec

Afinní transformace je transformace, která udržuje linie rovnoběžné, ale ne nutně úhly nebo délky.
V počítačové grafice je vše, co souvisí s dvojrozměrným případem, obvykle označeno symbolem 2D (2-rozměr). Předpokládejme, že přímočarý souřadný systém je zaveden do roviny. Potom je každý bod M spojen s uspořádanou dvojicí čísel (x, y) jeho souřadnic (obr. 1).


Výše uvedené vzorce lze uvažovat dvěma způsoby: buď je bod zachován a souřadný systém se v tomto případě změní, libovolný bod M zůstane stejný, změní se pouze jeho souřadnice (x, y) (x *, y *), nebo bod se změní a souřadnicový systém je v tomto zachován. V případě vzorce je specifikováno mapování, které přenáší libovolný bod M (x, y) do bodu M * (x *, y *), jehož souřadnice jsou určeny ve stejném souřadném systému. V následujícím textu budeme vzorce interpretovat zpravidla tak, že v daném systému přímých souřadnic se body roviny transformují.
V afinních transformacích roviny hraje zvláštní roli několik důležitých zvláštních případů s dobře vysledovanými geometrickými charakteristikami. Při studiu geometrického významu numerických koeficientů ve vzorcích pro tyto případy je vhodné předpokládat, že daný souřadný systém je pravoúhlý kartézský.
Nejčastěji používané techniky počítačové grafiky: přenos, změna měřítka, rotace, reflexe. Algebraické výrazy a obrázky vysvětlující tyto transformace jsou shrnuty v tabulce 1.

Afinní transformace v rovině

Transfer je chápán jako posun výstupních primitiv od stejného vektoru.
Změna měřítka je zvětšení nebo zmenšení celého obrázku nebo jeho části. Při změně měřítka se souřadnice obrazových bodů vynásobí určitým počtem.
Rotace označuje rotaci odvozovacích primitiv kolem dané osy. (V rovině výkresu dochází k rotaci kolem bodu.)
Odrazem se rozumí získání zrcadlového obrazu obrazu kolem jedné z os (například X).
Volba těchto čtyř zvláštních případů je dána dvěma okolnostmi:
1. Každá z výše uvedených transformací má jednoduchý a intuitivní geometrický význam (konstantní čísla obsažená ve výše uvedených vzorcích jsou také vybavena geometrickým významem).
2. Jak je prokázáno v průběhu analytické geometrie, jakoukoli transformaci formy (*) lze vždy představovat jako postupné provedení (superpozice) nejjednodušších transformací formy A, B, C a D (nebo části tyto transformace).
Platí tedy následující důležitá vlastnost afinních transformací roviny: jakékoli mapování formy (*) lze popsat pomocí mapování daných vzorci A, B, C a D.
Pro efektivní využití těchto známých vzorců v problémech s počítačovou grafikou je vhodnější jejich maticová notace.
Pro kombinování těchto transformací jsou zavedeny homogenní souřadnice. Homogenní souřadnice bodu jsou libovolné trojice současně nenulových čísel x1, x2, x3, spojené s danými čísly xay následujícími vztahy:



Potom se bod M (x, y) zapíše jako M (hX, hY, h), kde h 0 je měřítkový faktor. 2D kartézské souřadnice najdete jako

V projektivní geometrii jsou tyto souřadnice zavedeny, aby se odstranily nejistoty, které vznikají při zadávání nekonečně vzdálených (nesprávných) prvků. Homogenní souřadnice lze interpretovat jako uložení roviny zmenšené koeficientem h do roviny Z \u003d h v trojrozměrném prostoru.
Body v homogenních souřadnicích se zapisují do tříprvkových vektorů řádků. Transformační matice musí být 3x3.
Jakoukoli afinní transformaci roviny lze popsat pomocí trojic homogenních souřadnic a matic třetího řádu.
Ve skutečnosti, za předpokladu h \u003d 1, porovnejme dva záznamy: označené symbolem (*) a následující, matice:

Nyní můžete použít transformační kompozice tak, že namísto řady transformací následujících po sobě použijete jeden výsledek. Složitý úkol lze například rozdělit na několik jednoduchých. Otočení bodu A kolem libovolného bodu B lze rozdělit do tří úkolů:
převod, ve kterém B \u003d 0 (kde 0 je původ);
otáčet se;
zpětný převod, kdy se bod B vrátí na své místo atd.
Složení nejobecnější formy operací T, D, R, M má matici:

Horní 2x2 je kombinovaná matice rotace a změny měřítka a tx a ty popisují celkový překlad.
Popsané základní transformace se redukují na následující:
rolovánípohyb okna na vykreslovací ploše (pokud je pohyb omezen pouze na směr nahoru a dolů, pak se tomu říká svislé posouvání);

zvětšení postupná změna měřítka obrazu;
salto dynamický obraz výstupních primitiv rotujících kolem nějaké osy, jejichž orientace se v prostoru neustále mění;
pánev postupný přenos obrazu za účelem vytvoření vizuálního vjemu pohybu.

Kapitola I. Koncept geometrické transformace

1.1 Co je to geometrická transformace?

Axiální symetrie, středová symetrie, rotace, paralelní překlad, homothety mají společné to, že všechny „transformují“ každou postavu F na novou postavu F1. Proto se jim říká geometrické transformace.

Obecně se geometrická transformace nazývá jakékoli pravidlo, které umožňuje každému bodu A v rovině určit nový bod A ", do kterého je bod A přeložen uvažovanou transformací. Pokud je v rovině uveden jakýkoli údaj F, pak množina všech bodů, do kterých se přenesou jemné tvary F pro uvažovanou transformaci, je nový obrázek F. V tomto případě řekneme, že F "se získá z F pomocí uvažované transformace.

Příklad. Symetrie vzhledem k přímce l je geometrická transformace. Pravidlo, které vám umožní najít odpovídající bod A „bodem A“, je v tomto případě následující: z bodu A je kolmý AP spuštěn na přímku l a segment RA „\u003d AP je položen na jeho pokračování za bodem P.

Přidání geometrických transformací

Předpokládejme, že uvažujeme o dvou geometrických transformacích, z nichž jednu nazýváme „první“ a druhou - „druhou“. Vezměte libovolný bod A v rovině a označte A "bod, do kterého A prochází během první transformace. Bod A" se zase převede druhou transformací do nějakého nového bodu A. "Jinými slovy, bod A" se získá z bodu A pomocí postupné aplikace dvou transformací - první první a poté druhé.

Výsledkem postupného provádění dvou provedených transformací je také geometrická transformace: transformuje bod A do bodu A. „Tato„ výsledná “transformace se nazývá součet první a druhé uvažované transformace.

Nechť je v rovině uveden nějaký údaj F. První transformace jej transformuje na nějaký obrázek F ". Druhá transformace transformuje tento údaj F" na nový obrázek F "". Součet první a druhé transformace okamžitě transformuje figuru F na figuru F ".

Příklad. Nechť první transformace je symetrie kolem bodu O1 a druhá transformace - symetrie kolem jiného bodu O2. Najdeme součet těchto dvou transformací.

Nechť A je libovolný bod roviny. Nejprve předpokládejme, že bod A neleží na přímce O1O2. Označme A „bod symetrický k bodu A vzhledem k O1 a skrz A„ bod symetrický k bodu A “vzhledem k O2. Protože O1O2 je střední čára trojúhelníku AA„ A “„ pak segment AA “ je rovnoběžná se segmentem O1O2 a má dvojnásobnou délku. Směr od bodu A do bodu A "se shoduje se směrem od bodu

О1 do bodu О2. Označme nyní МN takový vektor, že segmenty MN a O1 O2 jsou rovnoběžné, segment МN je dvakrát tak dlouhý jako segment O1О2 a paprsky МN a O1O2 mají stejný směr. Potom AA "\u003d MN, tj. Bod A", se získá z bodu A paralelním přenosem do vektoru MN.

Totéž platí pro bod ležící na přímce O1O2.

Nakonec dostaneme: součet symetrie kolem bodu O1 a symetrie kolem bodu O2 je paralelní překlad.

1.2 Pohyb

Axiální symetrie, rotace (zejména centrální symetrie) a paralelní překlad mají společné to, že každá z těchto transformací transformuje jakoukoli postavu F v rovině na stejnou postavu F. "Transformace, které mají tuto vlastnost, se nazývají pohyby. Homotetia je příkladem a transformace Každý pohyb skutečně transformuje jakoukoli figuru na stejnou postavu, to znamená, že mění pouze polohu figur v rovině, zatímco homothety také mění velikost figurek.

Role pohybu v geometrii

Pohyb hraje v geometrii nesmírně důležitou roli. Nemění tvar ani velikost figurek, pouze mění jejich polohu. Ale čísla, která se z hlediska geometrie liší pouze jejich umístěním v rovině, jsou přesně stejná. Proto se jim v geometrii říká „stejné postavy“. Žádná vlastnost geometrického útvaru se neliší od odpovídající vlastnosti stejného útvaru. Například rovné trojúhelníky mají nejen stejné strany, ale také stejné úhly, mediány, půlící čáry, oblasti, poloměry vepsaných a ohraničených kruhů atd.

V hodinách geometrie jsme vždy považovali stejné tvary (tj. Ty, které lze kombinovat pomocí pohybu) za stejné nebo nerozeznatelné. Taková čísla jsou často zaměňována za stejná čísla. Proto můžeme říci, že například problém konstrukce trojúhelníku na dvou stranách a, b a úhlu C mezi nimi má pouze jedno řešení. Ve skutečnosti samozřejmě existuje nekonečně mnoho trojúhelníků s danými stranami a a b a úhlem C dané hodnoty mezi nimi. Všechny tyto trojúhelníky jsou však stejné, stejné, takže je lze brát jako „jeden“ trojúhelník.

Geometrie tedy studuje ty vlastnosti obrazců, které jsou stejné pro stejné obrazce. Takové vlastnosti lze nazvat „geometrické vlastnosti“. Jinými slovy: geometrie studuje vlastnosti figur bez ohledu na jejich umístění. Ale tvary, které se liší pouze umístěním (stejné tvary), jsou ty, které lze kombinovat pomocí pohybu. Proto se dostáváme k následující definici předmětu geometrie; geometrie studuje ty vlastnosti figur, které jsou zachovány během pohybu.

Pohyb v geometrii a fyzice

Koncept pohybu tedy hraje v geometrii primární roli. Pohyby ("překryvy") byly použity ve třídě VI k určení stejných hodnot, k prokázání známek rovnosti trojúhelníků; koncept pohybu, jak jsme viděli výše, také umožňuje popsat předmět geometrie.

Mezitím existuje mezera v definicích pojmu rovnost čísel a pojmu pohyb. Ve skutečnosti byly stejné postavy definovány (ve třídě VI) jako ty postavy, které lze překrývat překrývajícími se (tj. Pohybem). Pohyby byly definovány výše jako transformace, které překládají dva polygony F1 a F tak, že existuje polygon F „homotetický k F a rovný F1, pak se úhly polygonu F rovnají úhlu polygonu F“ a strany mnohoúhelníku F jsou úměrné stranám mnohoúhelníku F ". Ale polygon F má stejné úhly a strany jako jeho stejný mnohoúhelník F1. V důsledku toho jsou polygony F1 a F podobné ve smyslu, ve kterém bylo to pochopeno v průběhu geometrie třídy VIII.

Naopak, ať jsou polygony F1 a F takové, aby jejich úhly byly stejné a strany byly proporcionální. Poměr stran mnohoúhelníku F1 k odpovídajícím stranám mnohoúhelníku F je označen k. Dále označíme F "polygon získaný z F homothety s koeficientem k (a libovolné centrum homothety. V tomto případě budou mít polygony F" a F1 na základě věty stejné strany a úhly, v daném pořadí, to znamená, že tyto polygony budou stejné. Proto jsou polygony F1 a F podobné ve smyslu zde uvedené definice podobnosti.


Kapitola II Afinní transformace

2.1 Afinní transformace roviny

Afinní transformace α je transformace roviny, která transformuje jakoukoli přímku na přímku a zachovává vztah, ve kterém bod rozděluje segment.

Na obr. 1: L "\u003d α (L), A" \u003d α (A), B "\u003d α (B), C" \u003d α (C),

|

Transformace - pohyb a podobnost - jsou speciální případy afinních transformací, protože pro ně jsou vzhledem k vlastnostem pohybu a podobnosti splněny všechny požadavky definice afinních transformací.

Uveďme příklad afinní transformace, kterou nelze redukovat na dříve uvažované. Za tímto účelem nejprve zvažte rovnoběžné promítání roviny na rovinu.

Nechť jsou uvedena roviny: linie w a w1 l (směr projekce), které nejsou rovnoběžné s žádnou z těchto rovin (obr. 2). Bod Аєw se nazývá projekce bodu А1єw1, pokud АА1 || l, pak se přímka АА1 nazývá projekční přímka. Paralelní konstrukce je mapování roviny w1 do roviny w.

Všimněte si následujících vlastností souběžného návrhu.

1) Obrázek jakékoli přímky a1 je přímka.

Přímky vyčnívající body přímky a1 skutečně tvoří rovinu (prochází a1 rovnoběžně s l), která při protnutí s w vytváří obraz přímky a1 - přímky a (obr. 2) ).

2) Poměr, ve kterém bod rozděluje segment, je zachován, tj.

(obr. 2)

Toto okamžitě vyplývá z věty o průsečíku stran úhlu rovnoběžnými čarami.

Pojďme přímo ke konstrukci příkladu afinní transformace.

Vezměte dvě kopie roviny w a jednu z nich přesuňte do jiné polohy w1 (obr. 3). Nová poloha libovolného bodu єє bude označena А1єw1. Nyní promítneme rovinu w1 do nějaké polohy na w, projekce bodu A1 budeme označovat A ".

Výsledkem je transformace roviny w na sebe, ve které

... Kvůli symetrickým vlastnostem paralelního designu pro tuto transformaci jsou splněny oba požadavky určité afinní transformace, proto je nyní vytvořená transformace prospektivně afinní.

Tématem tohoto čísla je úkol afinní transformace v maticové formě. Toto téma je ve skutečnosti souhrnem všeho, co bylo řečeno dříve.

Definice. Rovinová transformace se nazývá afinní, Pokud

  • je to jedna ku jedné;
  • jakákoli přímka je přímka.

Transformace se nazývá jedna ku jedné, Pokud

  • různé body se mění v různé;
  • nějaký bod jde do každého bodu.

Homogenní souřadnice

Pokud vezmeme v úvahu paralelní překlad, ukázalo se, že matice 2x2 již nestačí k jeho definování. Lze jej však určit pomocí matice 3x3. Vyvstává otázka, kam vzít třetí souřadnici dvojrozměrného bodu?

Definice. Homogenní souřadnice - souřadnice, které mají tu vlastnost, že objekt, který definují, se nemění, když jsou všechny souřadnice vynásobeny stejným číslem.

Homogenní vektorové souřadnice(x, y) je trojnásobek čísel(x ", y", h), kde x \u003d x "/ h, y \u003d y" / h a h - nějaké skutečné číslo (případ, kdyh \u003d 0 je speciální).

Cca.Tyto souřadnice neumožňují jednoznačně definovat bod roviny. Například,(1, 1, 1) a (2, 2, 2) nastavit stejný bod(1, 1) ... Navrhuje se vzít sadu(x, y, 1) , který bude popisovat všechny body roviny.

Transformační matice pro homogenní souřadnice je 3x3. Uvažujme o některých transformacích v homogenních souřadnicích.

Komprese / roztažení

Tato transformace vynásobí odpovídající souřadnice bodu faktory měřítka osy:(x, y) -\u003e (a x * x, a y * y) ... Transformační matice bude zapsána následovně:

[a x 0 0]

Kde x - táhnoucí se podél osyx,

a y - táhnoucí se podél osyy.

Cca. Je vidět, že se zápornými hodnotami kompresních / napěťových poměrů dochází k odrazu kolem příslušných os. Tento případ lze zahrnout do této transformace, nebo ho lze vyjmout v samostatném případě s tím, že faktory měřítka mají pouze kladné hodnoty.

Otáčet se


Matice rotace 2x2 byla podrobně popsána dříve. Nyní je vyplněn řádkem a sloupcem:

[-sin (phi) cos (phi) 0]

Cca.Pod úhlem phi \u003d n tato matice definuje centrální symetrii o počátku, což je speciální případ rotace. Všimnete si, že tuto symetrii lze nastavit pomocí transformace zmenšení / roztažení (za předpokladu negativních faktorů měřítka).

Paralelní přenos


Původní vektor (x, y) jde do (x + t x, y + t y) ... Transformační matice bude zapsána následovně:

[ 1 0 0]

[t x t y 1]

Odraz


Jak je uvedeno v poznámce k transformaci komprese / roztažení, odrazy se získají takto:

[-10 0]


odraz kolem osy x


odraz kolem osyy

Obecný pohled na afinní transformaci

Matice 3x3, jejíž poslední sloupec je (0 0 1) T, určuje afinní transformaci roviny:

[ * * 0]

[ * * 0]

[ * * 1]

Podle jedné z vlastností lze afinní transformaci zapsat jako:

f (x) \u003d x * R + t,

kde R - invertibilní matice 2x2 a t Je libovolný vektor. V homogenních souřadnicích to lze zapsat takto:

[R 1,1 R 1,2 0]

[R 2.1 R 2.2 0]

[t x t y 1]

Pokud vynásobíme řádkový vektor touto maticí, získáme výsledek transformace:

[xy1] * [R 1,1 R 1,2 0]

[R 2.1 R 2.2 0]

[t x t y 1]

[x'y'1] + [t x t y 1]

[X ‘y’] \u003d R * [x y]

Cca. Zvědavý čtenář si již položil otázku: jaký je význam determinantu matice R? Při afinní transformaci se oblasti všech postav změní na |R |. (Je možné to důsledně dokázat z matematického hlediska, ale tato skutečnost je zde uvedena bez důkazu.)

Tak afinní transformace je reprezentována jako kompozice nějaké transformace dané maticíR a paralelní přenos. Podívejme se blíže na podstatu této matice a na možnosti, které nám dává.

Matrix R. definuje nový základ pro letadlo. Ty. vektor(1, 0) jde do (R 1,1, R 1,2), vektor (0, 1) jde do (R 2,1, R 2,2 ). Novým základem jsou řádky maticeR.

Příklad.


Když se odráží kolem osy y , základní vektor podél osy souřadnic je zachován a podél osy úsečky se změní na(-ten). Tak matice R. bude vypadat takto:


Nyní je jasné, že kromě výše uvedených transformací můžete pomocí afinní transformace získat zkosení:


Výše uvedené představuje základní úvod do mocného nástroje afinní transformace. Zůstává mnoho otázek: která podtřída afinních transformací zachovává úhly mezi řádky? Jak můžete reprezentovat afinní transformaci jako složení několika podtříd? Jak definovat složitější transformace, například axiální symetrii o libovolné přímce?

Odpovědi na tyto otázky a podrobnější zvážení afinní transformace budou uvedeny samostatně, jako součást kurzu teoretické geometrie.

Pojďme se zabývat praktickou realizací afinní transformace ve formě demo programu. Funkce paralelního překladu jsou přidány do možností aplikace, která ukazuje rotaci roviny pomocí myšiCTRL.

Protože Tento článek uzavírá tuto část, demo kód aplikace musí být vhodný. Pokusme se přijít na to, jaké bloky jsou v grafické aplikaci potřeba, zatímco se podíváme na to, jak jsou implementovány v tomto programu:

  • blok, ve kterém je vytvořeno okno a jsou zpracovávány zprávy operačního systému, je implementován do souboruemain. cpp
  • grafický modul, který vykresluje obraz, třídaMotor
  • vrstva potřebná k převodu logických souřadnic na souřadnice v okně a naopak, třídaVýřez
  • objekt odpovědný za reakci na akce uživatele, třídaAkce

Uvedený příklad implementuje tyto funkční bloky s podrobnými komentáři.

Níže \\ (f \\) označuje afinní transformaci zapsanou v kartézském souřadnicovém systému \\ (O, \\ boldsymbol (e) _ (1), \\ boldsymbol (e) _ (2) \\) podle vzorců
$$
x ^ (*) \u003d a_ (1) x + b_ (1) y + c_ (1), \\ y ^ (*) \u003d a_ (2) x + b_ (2) y + c_ (2). \\ label ( ref1)
$$
vzhledem k tomu
$$
\\ begin (vmatrix)
a_ (1) & b_ (1) \\\\
a_ (2) & b_ (2)
\\ end (vmatrix) \\ neq 0. \\ label (ref2)
$$

Zvažte přímku v rovině s rovnicí \\ (\\ boldsymbol (r) \u003d \\ boldsymbol (r) _ (0) + \\ boldsymbol (a) t \\) a najděte její obrázek pod transformací \\ (f \\). (Pod obrazem přímky rozumíme množinu obrazů jejích bodů.) Vektor poloměru obrazu \\ (M ^ (*) \\) libovolného bodu \\ (M \\) lze vypočítat takto:
$$
\\ overrightarrow (OM ^ (*)) \u003d \\ overrightarrow (Of (O)) + f \\ overrightarrow ((O) M ^ (*)) \u003d \\ boldsymbol (c) + f (\\ boldsymbol (r)). \\ nonumber
$$

Zde \\ (\\ boldsymbol (c) \\) je konstantní vektor \\ (\\ overrightarrow (Of) (O) \\) a \\ (\\ boldsymbol (r) \\) je poloměr vektoru bodu \\ (M \\). Podle (11) §2 získáme
$$
\\ overrightarrow (OM ^ (*)) \u003d \\ boldsymbol (c) + f (\\ boldsymbol (r) _ (0)) + f (\\ boldsymbol (a)) t. \\ label (ref3)
$$
Protože \\ (f \\) je afinní transformace a \\ (\\ boldsymbol (a) \\ neq \\ boldsymbol (0) \\), pak \\ (\\ boldsymbol (a) \\) přejde do vektoru \\ (f (\\ boldsymbol ( a)) \\ neq 0 \\) a rovnice \\ eqref (ref3) je přímková rovnice. Takže obrázky všech bodů přímky \\ (\\ boldsymbol (r) \u003d \\ boldsymbol (r) _ (0) + \\ boldsymbol (a) t \\) leží na přímce \\ eqref (ref3).

Transformace \\ (f \\) navíc definuje mapování jedné přímky na druhou přímkou \u200b\u200bk druhé, protože pro výběr zde vytvořených výchozích bodů a směrových bodů má bod \\ (M ^ (*) \\) stejná hodnota na přímce \\ eqref (ref3) parametr \\ (t \\), jako bod \\ (M \\) na původním řádku. Z toho získáme první prohlášení.

Prohlášení 1.

S afinní transformací:

  • přímka se změní na přímku;
  • segment se změní na segment;
  • paralelní čáry jdou do paralel.

Důkaz.

K prokázání druhého tvrzení stačí poznamenat, že úsečka se skládá z bodů, u nichž hodnoty parametrů splňují nerovnost tvaru \\ (t_ (1) \\ leq t \\ leq t_ (2) \\) Třetí příkaz vyplývá ze skutečnosti, že při afinní transformaci se kolineární-tý vektory stávají kolineárními.

Prohlášení 2.

U afinní transformace se poměr délek paralelních segmentů nezmění.

Důkaz.

Nechte segmenty \\ (AB \\) a \\ (CD \\) být rovnoběžné. To znamená, že existuje takové číslo \\ (\\ lambda \\), které \\ (\\ overrightarrow (AB) \u003d \\ lambda \\ overrightarrow (CD) \\). Vektorové obrázky \\ (\\ overrightarrow (AB) \\) a \\ (\\ overrightarrow (CD) \\) souvisí ve stejné závislosti \\ (\\ overrightarrow (A ^ (*) B ^ (*)) \u003d \\ lambda \\ overrightarrow ( C ^ (*) D ^ (*)) \\). Z toho tedy vyplývá, že
$$
\\ frac (| \\ overrightarrow (AB) |) (| \\ overrightarrow (CD) |) \u003d \\ frac (| \\ overrightarrow (A ^ (*) B ^ (*)) |) (| \\ overrightarrow (C ^ (*) ) D ^ (*)) |) \u003d | \\ lambda |. \\ Nonumber
$$

Následek.

Pokud bod \\ (C \\) rozděluje segment \\ (AB \\) v nějaké relaci \\ (\\ lambda \\), pak jeho obraz \\ (C ^ (*) \\) rozděluje obraz \\ (A ^ (*) B ^ (*) \\) segment \\ (AB \\) ve stejném vztahu \\ (\\ lambda \\).

Změna v oblastech s afinní transformací.

Začněme s. Zvolte společný kartézský souřadný systém \\ (O, \\ boldsymbol (e) _ (1), \\ boldsymbol (e) _ (2) \\) a označte jej \\ ((p_ (1), p_ (2)) \\) a \\ ((q_ (1), q_ (2)) \\) komponenty vektorů \\ (\\ boldsymbol (p) \\) a \\ (\\ boldsymbol (q) \\), na kterých je postavena. Můžeme vypočítat plochu rovnoběžníku pomocí:
$$
S _ (\\ pm) \u003d S _ (\\ pm) (\\ boldsymbol (p), \\ boldsymbol (q)) \u003d (p_ (1) q_ (2) -p_ (2) q_ (1)) S _ (\\ pm) (\\ boldsymbol (e) _ (1), \\ boldsymbol (e) _ (2)). \\ nonumber
$$

Nechte afinní transformaci \\ (f \\) zapsat do vybraného souřadnicového systému pomocí vzorců \\ eqref (ref1). Z toho, co bylo prokázáno dříve, vyplývá, že vektory \\ (f (\\ boldsymbol (p)) \\) a \\ (f (\\ boldsymbol (q)) \\) mají \\ (f (\\ boldsymbol (e) _ (1))) , f (\\ boldsymbol (e) _ (2)) \\) stejné komponenty \\ ((p_ (1), p_ (2)) \\) a \\ ((q_ (1), q_ (2)) \\) jako a vektory \\ (\\ boldsymbol (p) \\) a \\ (\\ boldsymbol (q) \\) na základě \\ (\\ boldsymbol (e) _ (1), \\ boldsymbol (e) _ (2) \\). Obrázek rovnoběžníku je postaven na vektorech \\ (f (\\ boldsymbol (p)) \\) a \\ (f (\\ boldsymbol (q)) \\) a jeho oblast je
$$
S _ (\\ pm) ^ (*) \u003d S _ (\\ pm) (f (\\ boldsymbol (p)), f (\\ boldsymbol (q))) \u003d (p_ (1) q_ (2) -p_ (2 ) q_ (1)) S _ (\\ pm) (f (\\ boldsymbol (e) _ (1)), f (\\ boldsymbol (e) _ (2))). \\ Nonumber
$$

Pojďme vypočítat poslední faktor. Jak víme z toho, co již bylo prokázáno, souřadnice vektorů \\ (f (\\ boldsymbol (e) _ (1)), f (\\ boldsymbol (e) _ (2)) \\) jsou příslušně \\ ( (a_ (1), a_ (2)) \\) a \\ ((b_ (1), b_ (2)) \\). Proto \\ (S _ (\\ pm) (f (\\ boldsymbol (e) _ (1)), f (\\ boldsymbol (e) _ (2))) \u003d (a_ (1) b_ (2) -a_ (2 ) b_ (1)) S _ (\\ pm) (\\ boldsymbol (e) _ (1), \\ boldsymbol (e) _ (2)) \\) a
$$
S _ (\\ pm) ^ (*) \u003d (p_ (1) q_ (2) -p_ (2) q_ (1)) (a_ (1) b_ (2) -a_ (2) b_ (1)) S_ (\\ pm) (\\ boldsymbol (e) _ (1), \\ boldsymbol (e) _ (2)). \\ nonumber
$$
Z toho vidíme, že
$$
\\ frac (S _ (\\ pm) ^ (*)) (S _ (\\ pm)) \u003d \\ begin (vmatrix)
a_ (1) & b_ (1) \\\\
a_ (2) & b_ (2)
\\ end (vmatrix). \\ label (ref4)
$$

Poměr oblasti obrazu orientovaného rovnoběžníku k ploše tohoto rovnoběžníku je tedy stejný pro všechny rovnoběžníky a je roven \\ (a_ (1) b_ (2) -a_ (2) b_ (1) \\).

Z toho vyplývá, že tento determinant nezávisí na volbě souřadnicového systému, do kterého je transformace zapsána, i když je počítán koeficienty v závislosti na souřadnicovém systému. Tato hodnota je neměnný, který vyjadřuje geometrickou vlastnost transformace.

Ze vzorce \\ eqref (ref4) je patrné, že poměr plochy obrazu nepřímého rovnoběžníku k jeho ploše je
$$
S ^ (*) / S \u003d | a_ (1) b_ (2) -a_ (2) b_ (1) |. \\ Label (ref5)
$$

Pokud \\ (a_ (1) b_ (2) -a_ (2) b_ (1)\u003e 0 \\), zůstanou během transformace zachovány orientace všech orientovaných rovnoběžníků a pokud \\ (a_ (1) b_ (2) -a_ (2) b_ (1)< 0\), то для каждого ориентированного параллелограмма ориентация образа противоположна его ориентации.

Pojďme se nyní zabývat oblastmi jiných čísel. Každý trojúhelník lze dokončit a vytvořit rovnoběžník, jehož plocha je dvakrát větší než plocha trojúhelníku. Proto poměr plochy obrazu trojúhelníku k ploše tohoto trojúhelníku splňuje rovnost \\ eqref (ref5).

Každý mnohoúhelník lze rozdělit na trojúhelníky. Proto je vzorec \\ eqref (ref5) platný také pro libovolné polygony.

Zde se nedotkneme definice oblasti libovolné křivkové figury. Řekneme jen, že v těch případech, kdy je tato oblast definována, se rovná limitu oblastí určité posloupnosti polygonů zapsaných na uvažovaném obrázku. Z teorie limitů je znám následující předpoklad: má-li posloupnost \\ (S_ (n) \\) sklon k limitu \\ (S \\), pak posloupnost \\ (\\ delta S_ (n) \\), kde \\ ( \\ delta \\) je konstantní, má sklon omezovat \\ (\\ delta S \\). Na základě tohoto návrhu jsme dospěli k závěru, že vzorec \\ eqref (ref5) je platný v nejobecnějším případě.

Jako příklad pojďme najít výraz pro oblast elipsy, pokud jde o její semiaxes. Dříve jsme říkali, že elipsu se semiaxy \\ (a \\) a \\ (b \\) lze získat komprimací kruhu o poloměru \\ (a \\) na přímku procházející jejím středem. Kompresní poměr je \\ (b / a \\). V jednom z nich jsme dostali souřadnicový záznam komprese na přímku \\ (x ^ (*) \u003d x \\), \\ (y ^ (*) \u003d \\ lambda y \\). Determinant koeficientů v těchto vzorcích je \\ (\\ lambda \\), tedy v našem případě \\ (b / a \\). Poměr plochy elipsy k ploše kruhu je tedy \\ (b / a \\) a tato oblast je \\ (S \u003d (b / a) \\ pi a ^ (2) \\ ). Konečně máme
$$
S \u003d \\ pi ab. \\ Nonumber
$$

Řádkové obrázky druhého řádu.

Viděli jsme, že přímka se změní na přímku. Toto je zvláštní případ následujícího tvrzení.

Prohlášení 3.

Afinní transformace převezme algebraickou linii na algebraickou linii stejného řádu.

Důkaz.

Nechť přímka \\ (L \\) v kartézském souřadném systému \\ (O, \\ boldsymbol (e) _ (1), \\ boldsymbol (e) _ (2) \\) má algebraickou rovnici řádu \\ (p \\ ). Již máme, že obrazy všech bodů přímky \\ (L \\) v afinní transformaci \\ (f \\) mají v souřadnicovém systému \\ (f (O), f (\\ boldsymbol (e) _ (1)) , f (\\ boldsymbol (e) _ (2)) \\) stejné souřadnice jako jejich preimages v souřadnicovém systému \\ (O, \\ boldsymbol (e) _ (1), \\ boldsymbol (e) _ (2) \\) . V důsledku toho jsou souřadnice obrazů v systému \\ (f (O), f (\\ boldsymbol (e) _ (1)), f (\\ boldsymbol (e) _ (2)) \\) spojeny stejnou algebraickou řádová rovnice \\ (p \\). To stačí k vyvození závěru, který potřebujeme.

Z výše prokázaného výroku zejména vyplývá, že linie druhého řádu při afinní transformaci přechází do linie druhého řádu. Prokážeme silnější prohlášení. Jak již víme, řádky druhého řádu lze rozdělit na. Uvidíme, že třída čáry je zachována napříč afinní transformací. Na tomto základě se třídy řádků uvedené v uvedené větě nazývají afinní třídy. Dokážme tedy nové prohlášení.

Prohlášení 4.

Řádek druhého řádu patřící do jedné z afinních tříd, s jakoukoli afinní transformací, může přejít pouze na řádek stejné třídy. Každý řádek druhého řádu lze vhodnou afinní transformací přenést na jakýkoli jiný řádek stejné afinní třídy.

Důkaz.

Říkáme hranici ohraničenou, pokud leží uvnitř nějakého rovnoběžníku. Je snadné vidět, že při afinní transformaci musí ohraničená čára přejít na ohraničenou a neohraničená - na neohraničenou.

  1. Elipsa je ohraničená čára druhého řádu. Kromě elips jsou omezeny pouze přímky skládající se z jednoho bodu, tj. Dvojice imaginárních protínajících se čar. Protože elipsa je ohraničená a skládá se z více než jednoho bodu, může přejít pouze na elipsu.
  2. Hyperbola se skládá ze dvou samostatných větví. Tuto vlastnost lze formulovat tak, aby byla jasná její neměnnost při afinních transformacích. Jmenovitě existuje přímka, která neprotíná hyperbolu, ale protíná některé její akordy. Ze všech linií druhého řádu mají tuto vlastnost pouze hyperboly a páry paralelních přímek. Větve hyperboly nejsou přímky, a proto při afinní transformaci může přejít pouze na hyperbolu.
  3. Parabola je neomezená čára druhého řádu, skládající se z jednoho přímého kusu. Tuto vlastnost nemají žádné jiné řádky druhého řádu, a proto může parabola přejít pouze do paraboly.
  4. Pokud je přímkou \u200b\u200bdruhého řádu bod (dvojice imaginárních protínajících se čar), přímka (dvojice shodných čar), dvojice protínajících se čar nebo dvojice paralelních linií, pak z vlastností afinních transformací prokázáno dříve vyplývá, že tento řádek nemůže jít do řádku žádné jiné třídy.

Dokážme druhou část návrhu. Jak jsme již prokázali, kanonické rovnice linií druhého řádu jsou psány v pravoúhlém souřadnicovém systému a obsahují parametry \\ (a, b, ... \\) Pokud opustíme ortonormalitu základny, můžeme učinit další zjednodušení kanonických rovnic a přivést je do formy, která neobsahuje parametry ... Například změna souřadnic \\ (x '\u003d x / a \\), \\ (y' \u003d y / b \\) překládá rovnici elipsy \\ (x ^ (2) a ^ (2) + y ^ ( 2) b ^ (2) \u003d 1 \\) do rovnice \\ (x '^ (2) + y' ^ (2) \u003d 1 \\), ať už jsou \\ (a \\) a \\ (b \\). (Poslední rovnice není rovnicí kruhu, protože nový souřadný systém není pravoúhlý obdélníkový.)

Čtenář snadno ukáže, že kanonické rovnice linií druhého řádu lze transformovat do rovnic přechodem do vhodného souřadného systému:

  1. \\ (x ^ (2) + y ^ (2) \u003d 1 \\);
  2. \\ (x ^ (2) + y ^ (2) \u003d 0 \\);
  3. \\ (x ^ (2) -y ^ (2) \u003d 1 \\);
  4. \\ (x ^ (2) -y ^ (2) \u003d 0 \\);
  5. \\ (y ^ (2) \u003d 2x \\);
  6. \\ (y ^ (2) -1 \u003d 0 \\);
  7. \\ (y ^ (2) \u003d 0 \\).

Takový souřadný systém budeme nazývat afinní kanonický souřadný systém.

Z dřívějšího vyplývá, že afinní transformace, která kombinuje afinní kanonické souřadnicové systémy dvou linií stejné afinní třídy, tyto linky také kombinuje. Tím končí důkaz.

Rozklad ortogonální transformace.

Věta 1.

Každá ortogonální transformace se rozloží na produkt paralelního posunu, rotace a případně axiální symetrie.

Důkaz.

Nechť \\ (f \\) je ortogonální transformace a \\ (\\ vartriangle ABC \\) rovnoramenný pravý trojúhelník s pravým úhlem \\ (A \\). Při transformaci \\ (f \\) půjde do stejného trojúhelníku \\ (\\ vartriangle A ^ (*) B ^ (*) C ^ (*) \\) s pravým úhlem na vrcholu \\ (A ^ (*) \\). Věta bude prokázána, pokud při postupném paralelním překladu \\ (p \\), rotaci \\ (q \\) a (je-li to nutné) axiální symetrii \\ (r \\) můžeme kombinovat trojúhelníky \\ (ABC \\) a \\ (A ^ (*) B ^ (*) C ^ (*) \\). Produkt \\ (rqp \\) je skutečně afinní transformací stejným způsobem jako \\ (f \\) a afinní transformace je jednoznačně určena obrazy tří bodů, které neleží na jedné přímce. Proto je \\ (rqp \\) stejné jako \\ (f \\).

Přeložme tedy \\ (A \\) a \\ (A ^ (*) \\) paralelním překladem \\ (p \\) na vektor \\ (\\ overrightarrow (AA ^ (*)) \\) (pokud \\ (A \u003d A ^ (*) \\), pak \\ (p \\) je transformace identity). Poté otočením \\ (q \\) kolem bodu \\ (A ^ (*) \\) spojíme \\ (p (B) \\) s \\ (B ^ (*) \\) (možná se tato transformace ukáže jako být stejný). Bod \\ (q (p (C)) \\) se shoduje s \\ (C ^ (*) \\), nebo je k němu symetrický vzhledem k přímce \\ (A ^ (*) B ^ (*) \\) . V prvním případě bylo cíle již dosaženo a ve druhém je vyžadována axiální symetrie vzhledem k zadané přímce. Věta je prokázána.

Je třeba mít na paměti, že výsledný rozklad ortogonální transformace není jednoznačný. Kromě toho může být rotace nebo paralelní posun rozložen na produkt osových symetrií, produkt paralelního posunu a rotace může být reprezentován jako jedna rotace atd. Nebudeme specifikovat, jak to udělat, ale objasníme následující obecnou vlastnost všech takových rozšíření.

Prohlášení 5.

Pro jakýkoli rozklad ortogonální transformace na produkt libovolného počtu paralelních překladů, rotací a axiálních symetrií je parita počtu axiálních symetrií obsažených v rozkladu stejná.

Důkaz.

Pro důkaz zvažte libovolný základ v rovině a sledujte změnu jeho orientace (směr nejkratší rotace od \\ (\\ boldsymbol (e) _ (1) \\) do \\ (\\ boldsymbol (e) _ (2) ) \\)) během transformací. Všimněte si, že rotace a paralelní překlad nemění orientaci žádného základu, zatímco osová symetrie mění orientaci žádného základu. Proto pokud daná ortogonální transformace změní orientaci základny, pak jakékoli její rozšíření musí zahrnovat lichý počet axiálních symetrií. Pokud se orientace základny nezmění, může být počet osových symetrií zahrnutých v expanzi pouze sudý.

Definice.

Ortogonální transformace, které lze rozložit na produkt paralelního překladu a rotace, se nazývají ortogonální transformace prvního druhu , a zbytek - ortogonální transformace druhého druhu .

Je napsána ortogonální transformace v pravoúhlém souřadnicovém systému:
$$
\\ begin (pole) (cc)


\\ end (pole). \\ nonumber
$$
S horními znaménky koeficientů y \\ (y \\) v těchto vzorcích je determinant složený z koeficientů +1 a se spodními znaménky -1. Následující příkaz vyplývá ze vzorce \\ eqref (ref4).

Prohlášení 6.

Ortogonální transformace prvního druhu je zapsána do pravoúhlého souřadnicového systému pomocí vzorců
$$
\\ begin (pole) (cc)
& x ^ (*) \u003d x \\ cos \\ varphi \\ mp y \\ sin \\ varphi + c_ (1), \\\\
& y ^ (*) \u003d x \\ sin \\ varphi \\ pm y \\ cos \\ varphi + c_ (2).
\\ end (pole). \\ nonumber
$$
s horními znaménky koeficientů \\ (y \\) a ortogonální transformací druhého druhu - s dolními znaménky.

Rozklad afinní transformace.

Viděli jsme, jak afinní transformace může změnit rovinu: kruh může přejít do elipsy, pravidelný trojúhelník do zcela libovolné roviny. Zdálo by se, že v tomto případě nelze zachovat žádné úhly. Následující tvrzení však platí.

Prohlášení 7.

Pro každou afinní transformaci existují dvě vzájemně kolmé přímky, které přecházejí do vzájemně kolmých přímek.

Důkaz.

Pro důkaz zvažte kruh. S touto afinní transformací se promění v elipsu. Každá osa elipsy je sada středů akordů rovnoběžných s jinou osou. Při afinní transformaci přejde akord do akordu, paralelismus by měl být zachován a střed segmentu přejde do středu jeho obrazu. Proto jsou inverzní obrazy os elipsy segmenty, které mají stejnou vlastnost: každý z nich je sada středů akordů kruhu rovnoběžných s jiným segmentem. Takové segmenty jsou určitě dva vzájemně kolmé průměry kruhu. To je to, co jsme potřebovali: existují dva vzájemně kolmé průměry kruhu, které se mění ve vzájemně kolmé segmenty - osu elipsy.

Za zmínku stojí jeden zvláštní případ: kruh lze při afinní transformaci přeměnit na kruh. V tomto případě platí stejné uvažování pro všechny dva vzájemně kolmé průměry obrazové kružnice. Je zřejmé, že v tomto případě zůstávají jakékoli dva vzájemně kolmé směry kolmé.

Definice.

Dva vzájemně kolmé směry se nazývají hlavní nebo sinugulární směry afinní transformace \\ (f \\), pokud procházejí do vzájemně kolmých směrů.

Věta 2.

Každá afinní transformace se rozloží na produkt ortogonální transformace a dvou kontrakcí na dvě vzájemně kolmé přímky.

Důkaz.

Důkaz je podobný důkazu. Zvažte afinní transformaci \\ (f \\) a vyberte rovnoramenný pravoúhlý trojúhelník \\ (ABC \\) tak, aby jeho nohy \\ (AB \\) a \\ (AC \\) směřovaly podél hlavních směrů transformace \\ (f \\ ). Nechť \\ (A ^ (*) \\), \\ (B ^ (*) \\) a \\ (C ^ (*) \\) označují obrazy jeho vrcholů. Provedeme ortogonální transformaci \\ (g \\) takovou, že \\ (g (A) \u003d A ^ (*) \\) a body \\ (g (B) \\) a \\ (g (C) \\) leží na paprsky \\ (A ^ (*) B ^ (*) \\) a \\ (A ^ (*) C ^ (*) \\). (Toho lze snadno dosáhnout, stejně jako v teorémě 1, paralelním překladem, rotací a osovou symetrií.)

Nechť \\ (\\ lambda \u003d | A ^ (*) B ^ (*) | / | A ^ (*) g (B) | \\), a \\ (\\ mu \u003d | A ^ (*) C ^ (*) | / | A ^ (*) g (C) | \\). Pak komprese \\ (p_ (1) \\) na řádek \\ (A ^ (*) C ^ (*) \\) vzhledem k \\ (\\ lambda \\) přeloží \\ (g (B) \\) do \\ (p_ (1) g (B) \u003d B ^ (*) \\) a nebude posouvat body \\ (A ^ (*) \\) a \\ (g (C) \\). Podobně komprese \\ (p_ (2) \\) na řádek \\ (A ^ (*) B ^ (*) \\) přeloží \\ (g (C) \\) na \\ (p_ (2) g (C) \u003d C ^ (*) \\) a neposune body přímky \\ (A ^ (*) B ^ (*) \\).

To znamená, že produkt \\ (p_ (2) p_ (1) g \\) vezme body \\ (A \\), \\ (B \\) a \\ (C \\) do bodů \\ (A ^ (*) \\), \\ (B ^ (*) \\) a \\ (C ^ (*) \\) a také danou transformaci \\ (f \\). Podle toho, co bylo prokázáno dříve, máme \\ (p_ (2) p_ (1) g \u003d f \\), jak je požadováno.

Jakákoli složitá afinní transformace může být reprezentována složením několika elementárních afinních transformací. Analýza ukazuje, že v 2D grafice existují čtyři základní afinní transformace - rotace, protažení, reflexe a překlad.

Otáčet se.

Zvažte rotaci libovolného bodu Akolem počátku o úhel (obr.6).

Elementární afinní transformace - rotace o úhel .

Z analytické geometrie je známo, že rotace je popsána následující afinní transformací.

(5)

Je vhodné kombinovat souřadnice bodu ve formě dvourozměrného vektoru (sloupce). Pak přechod bodu Ado polohy bodu A

(6)

V této notaci lze rotaci vyjádřit jako násobení matice.

(7)

Tady R- rotační matice (Rotation). Struktura této matice je získána z rovnic (5).

(8)

Stretch komprese, změna měřítka.

Zvažte operaci komprese napětí podél souřadnicových os s koeficienty napětí k 1 ,k 2. Tato operace se často nazývá škálování. Jako příklad si ukážeme (obr. 7) roztažení segmentu s roztahovacími koeficienty rovnými
.

Základní afinní transformace - protahování s koeficienty
.

Protahování je popsáno následující afinní transformací.

(9)

Transformaci (9) lze vyjádřit jako násobení matic.

(10)

Tady S- škálovací matice. Struktura této matice je získána z rovnic (9).

(11)

Odraz.

Zvažte operaci odrazu kolem souřadnicových os. Jako příklad si ukážeme (obr. 8) odraz kolem osy x.

Elementární afinní transformace - odraz kolem osy Ox.

Reflexe je popsána následující afinní transformací.

(12)

Transformaci (12) lze vyjádřit jako násobení matic.

(13)

Tady M- odrazová matice (Mirror - zrcadlo, odraz). Struktura této matice je získána z rovnic (12).

(14)

Podobně najdeme odrazovou matici kolem osy y.

(15)

Převod.

Zvažte operaci přenosu do vektoru překladu
... V této operaci se jakýkoli objekt pohybuje bez zkreslení a obě strany zůstávají rovnoběžné s sebou. Jako příklad ukážeme na obrázku 9 převod segmentu.

Elementární afinní transformace - přenos do překladového vektoru t .

Přenos je popsán následující afinní transformací.

(16)

Rádi bychom vyjádřili transformaci (16) ve formě typu násobení matic.

(17)

Tady T- musí to být překladová matice (Překlad - překlad, převod). Je však nemožné sestrojit matici Tdimenze 22, takže rovnice (16) a (17) jsou splněny současně.

A přesto lze takovou matici vytvořit, pokud formálně vezmeme v úvahu afinní 2D transformace v trojrozměrném prostoru. K tomu je nutné přejít na homogenní souřadnice.

Homogenní souřadnice.

Koncept homogenních souřadnic k nám přišel z projektivní geometrie. Nechte bod Aleží v letadle a má souřadnice ( x,y). Pak jednotné souřadnicetento bod je libovolná trojice čísel x 1, x 2, x 3 spojená s danými čísly xa ynásledujícími vztahy.

(18)

Při řešení problémů s počítačovou grafikou se jako homogenní souřadnice obvykle volí následující tři čísla.

Tedy libovolný bod A(x,y) rovině je přiřazen bod A(x,y, 1) ve vesmíru. Ve skutečnosti uvažujeme o afinních transformacích v rovině z\u003d 1, jak je znázorněno na obrázku 10.

Afinní transformace v homogenních souřadnicích.

Souřadnice bodů ležících v rovině z\u003d 1 kombinujeme ve formě trojrozměrných vektorů. Bodový přechod Ado polohy bodu A * lze považovat za transformující vektory.

(20)

V této notaci lze obecnou afinní transformaci (1) vyjádřit jako násobení matice.

(21)

Tady matice Pdimenze 33 je matice obecné afinní transformace (1) a má tvar.

(22)

Všimněme si důležitého bodu spojené s homogenními souřadnicemi. Přechod na trojrozměrné vektory a matice (20, 21, 22) lze provést zcela formálně, aniž by byl vázán na skutečný trojrozměrný prostor (x, y, z). Tento přístup umožňuje 3D afinním transformacím zavést homogenní souřadnice a provádět násobení matic ve 4-dimenzionálním vektorovém prostoru.

Matice elementárních afinních transformací zavedené dříve budou mít v homogenních souřadnicích následující podobu.

Rotační matice Rv homogenních souřadnicích bude mít následující podobu.

(23)

Stretch matrix Sse změní následovně.

(24)

Reflexní matice Mvzhledem k souřadným osám bude mít podobu.

(25)

Přenosová matice Tna vektoru překladu v homogenních souřadnicích bude mít následující podobu.

(26)