KATEDRA INFORMATIKY
ˇ´IRODOVEDECK ˇ ´ FAKULTA PR A ´ UNIVERZITA PALACKEHO
GEOMETRIE PRO INFORMATIKY MICHAL KRUPKA
´ ˇ ´IHO TEXTU JE SPOLUFINANCOVAN ´ VYVOJ TOHOTO UCEBN ´ SOCIALN ´ ´IM FONDEM A STATN ´ ´IM ROZPOCTEM ˇ ˇ ´ REPUBLIKY EVROPSKYM CESK E
Olomouc 2008
Abstrakt
Tento text se věnuje základům analytické a projektivní geometrie. Uvádí veškerou potřebnou teorii a příklady, které jsou zaměřeny zejména na aplikace v počítačové grafice.
C´ılov´ a skupina
Text je určen studentům informatických a matematických oborů přírodovědecké fakulty UP Olomouc
Obsah 1
Úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2
Afinní prostory a podprostory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.1
Afinní prostory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.2
Afinní podprostory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
Afinní souřadnice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
3.1
Báze a souřadnice ve vektorových prostorech . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
3.2
Afinní báze a souřadnice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
3.3
Matice přechodu mezi afinními bazemi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
Více o afinních podprostorech . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
4.1
Vzájemná poloha afinních podprostorů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
4.2
Příčka mimoběžek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
Afinní a konvexní kombinace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
5.1
Afinní kombinace a afinní obaly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
5.2
Body v obecné poloze, bodové báze a souřadnice . . . . . . . . . . . . . . . . . . . . . . . . . .
18
5.3
Konvexní kombinace, konvexní množiny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
Afinní zobrazení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
6.1
Základní vlastnosti afinních zobrazení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
6.2
Matice afinního zobrazení vzhledem k afinním bazím . . . . . . . . . . . . . . . . . . . . . . .
23
Projektivní prostory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
7.1
Afinní podprostory vektorových prostorů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
7.2
Perspektivní promítání . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
7.3
Základní pojmy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
7.4
Příklady . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
3
4
5
6
7
1
Úvod
Cílem textu je seznámit studenty informatických oborů se základy analytické a projektivní geometrie v rozsahu potřebném pro pochopení matematických základů počítačové grafiky a softwarových nástrojů v ní používaných (OpenGL, DirectX). Afinní a projektivní geometrie má přirozené uplatnění v počítačové grafice. Kromě toho se ale objevuje i v dalších oblastech informatiky (například v teorii pravděpodobnostních automatů se hojně pracuje s konvexními kombinacemi bodů a afinními transformacemi). Kromě napojení probírané teorie na oblast počítačové grafiky a další oblasti informatiky je látka obsažená v textu důležitá pro studenty informatiky i z dalších důvodů. Studenti si procvičí axiomatický způsob uvažování, obvyklý v matematice například v oblasti algebry. Tím si procvičí schopnost abstrakce, která je pro informatiky (například programátory) velmi podstatná (rozhodnout o podstatných aspektech problému, kterými se nyní budeme zabývat, a ostatní pominout). Z těchto důvodů se teoretické partie textu zabývají obecně n-rozměrnými strukturami (afinní, projektivní prostory), čímž na jednu stranu studenty nutí osvojit si abstraktní (formální) způsob myšlení a na druhou stranu brání vnášet do úvah nepodstatné prvky, platné pouze pro speciální případy. Dále si studenti rozvinou geometrickou představivost, která je rovněž důležitá pro schopnost abstraktního myšlení, a poučí se, jak intuitivně ověřené poznatky korektně zdůvodnit, případně dokázat. Předkládaná podoba textu je pouze první verzí. V budoucnu je v plánu rozšířit text o oblast eukleidovských prostorů a doplnit další příklady z oblasti počítačové grafiky.
4
2
Afinní prostory a podprostory
Tato kapitola se zabývá úvodními pojmy: afinními prostory a jejich podprostory. Jak uvidíme, afinní prostory jsou vhodným modelem trojrozměrného světa pro počítačovou grafiku.
2.1
Afinní prostory
Řekneme, že na neprázdné množině A je dána struktura afinního prostoru, je-li dán vektorový prostor V a zobrazení AddA : A × V → A takové, že 1. pro všechna a ∈ A, u, v ∈ V
AddA (AddA (a, u), v) = AddA (a, u + v),
(2.1)
2. pro všechna a, b ∈ A existuje právě jedno v ∈ V tak, že AddA (a, v) = b.
(2.2)
Množina A se strukturou afinního prostoru se nazývá afinní prostor, její prvky se nazývají body. Vektorový prostor V se nazývá zaměření afinního prostoru A. Je-li V vektorový prostor konečné dimenze, říká se o afinním prostoru A, že je také konečné dimenze. V takovém případě dimenzí afinního prostoru A nazýváme dimenzi vektorového prostoru V . Nemá-li vektorový prostor V konečnou dimenzi, říkáme i o afinním prostoru A, že nemá konečnou dimenzi (má nekonečnou dimenzi, je nekonečně rozměrný). Afinní prostor dimenze 1 se nazývá afinní přímka, afinní prostor dimenze 2 afinní rovina. Zobrazení AddA se nazývá sčítání bodů a vektorů. Pro libovolné a ∈ A a v ∈ V se bod AddA (a, v) označuje a + v a nazývá se součet bodu a a vektoru v . Jelikož podle bodu 1. definice platí (a + u) + v = a + (u + v), můžeme při přičítání dvou vektorů k bodu vynechat závorky a psát pouze a + u + v . Vektor v z bodu 2. definice afinního prostoru se označuje b − a. Vzhledem k podmínce bodu 2. tento vektor existuje pro libovolné a a b, a to právě jeden. Přiřazení (a, b) ‘→ b−a je tedy jednoznačně určené zobrazení z A × A do V . Vektoru b − a se říká rozdíl bodů b a a. Příklad 2.1. Na libovolné jednoprvkové množině A = {a} lze zavést jediným způsobem strukturu afinního prostoru1 . Příklad 2.2. Na vektorovém prostoru V zavádíme kanonickou strukturu afinního prostoru takto: zaměřením prostoru V volíme samotný vektorový prostor V , pro libovolné dva vektory u, v ∈ V klademe AddV (u, v) = u+v, kde součet na pravé straně je součet vektorů ve vektorovém prostoru V . Ověřte, že jsou splněny podmínky definice afinního prostoru. Pokud nebude řečeno jinak, budeme vektorové prostory uvažovat vždy s kanonickou strukturou afinního prostoru, popsanou v předchozím příkladě. Příklad 2.3. Víme, že na n-té kartézské mocnině množiny reálných čísel Rn je dána kanonická struktura vektorového prostoru. Pokud tuto strukturu využijeme jak je popsáno v předchozím příkladě, dostaneme kanonickou strukturu afinního prostoru na Rn . 1
Připomeňme, že uvažujeme pouze vektorové prostory nad tělesem reálných čísel
5
Pokud nebude řečeno jinak, budeme množinu Rn uvažovat vždy s kanonickou strukturou afinního prostoru, popsanou v předchozím příkladě. Abychom odlišili, kdy prvek Rn chápeme jako bod z afinního prostoru Rn a kdy jako vektor z vektorového prostoru Rn , budeme v prvním případě používat hranaté a ve druhém kulaté závorky. Příklad 2.4. Zvolme bod a0 ∈ A a definujme zobrazení f : A → V předpisem f (a) = a − a0 . Ukažte, že toto zobrazení je bijekce a najděte jeho inverzi. Příklad 2.5. Pro afinní prostor A1 se zaměřením V1 a afinní prostor A2 se zaměřením V2 definujte na množině A1 × A2 strukturu afinního prostoru se zaměřením V1 × V2 . Vˇ eta 2.6. Nechť A je afinní prostor se zaměřením V , a, b ∈ A, u ∈ V. Pak 1. a + 0 = a, 2. a − b = −(b − a), 3. (a + u) − b = (a − b) + u, Poznámka 2.7. „0“ v bodu 1. je nulový vektor ve vektorovém prostoru V.
D˚ ukaz. 1. Podle bodu 2. definice afinního prostoru existuje právě jeden vektor v ∈ V takový, že a + v = a. Odtud plyne rovnost a + v = (a + v) + v , která podle bodu 1. znamená a + v = a + (v + v), což podle bodu 2. (jednoznačnost) vede k v = v + v . Tuto rovnost ale splňuje pouze nulový vektor (proč?). Z rovnosti a + v = a tedy vyplynulo v = 0, což znamená, že žádný jiný vektor kromě nulového tuto rovnost nesplňuje. To společně s bodem 2. (existence) dokazuje první bod věty. 2. Označme a − b = u, b − a = v . Dostáváme b = a + v = (b + u) + v = b + (u + v). Podle prvního bodu této věty, který jsme již dokázali, platí u + v = 0, neboli u = −v .
3. Vektor v = (a+u)−b splňuje podmínku b+v = a+u. Přičtením vektoru −v k oběma stranám této rovnice a úpravou dostaneme a = b + (v − u). Odtud plyne v − u = a − b. Nyní, přičtením vektoru u dostaneme v = (a − b) + u, což je dokazované tvrzení. Poznámka 2.8. Projděte všechny výskyty symbolu „+“ v důkazu předchozí věty a rozhodněte, kdy označuje sčítání vektorů ve vektorovém prostoru V a kdy přičítání bodu z afinního prostoru A a vektoru z V (tedy zobrazení AddA z definice afinního prostoru). Podobně rozhodněte, kdy symbol „−“ označuje odečítání vektorů (tedy operaci na vektorovém prostoru V ) a kdy rozdíl bodů (tedy zobrazení A × A → V ). Poznámka 2.9. V případech, kdy symboly „+“ a „−“ neoznačují základní operace s reálnými čísly nebo vektory, ale slouží k označení sčítání bodů s vektory a odečítání bodů, jak jsme je definovali v této kapitole, nelze k práci s nimi používat naše znalosti z oblasti reálných čísel či vektorových prostorů. Je nutné postupovat pouze podle poznatků o afinních prostorech. Například v důkazu předchozí věty je třeba umět každý jednotlivý krok zdůvodnit pomocí definice afinního prostoru.
Příklad 2.10. Dokažte, že pro libovolné tři body a, b, c afinního prostoru A platí
(a − b) + (b − c) = a − c. Příklad 2.11. Dokažte, že pro libovolné dva body a, b afinního prostoru A a vektory u, v jeho zaměření platí
(a + u) − (b + v) = (a − b) + (u − v).
6
2.2
Afinní podprostory
Mějme afinní prostor A se zaměřením V. Neprázdná množina B ⊆ A se nazývá (afinní) podprostor afinního prostoru A, existuje-li vektorový podprostor W ⊆ V tak, že jsou splněny následující podmínky: 1. Pro každé a ∈ B , v ∈ W platí a + v ∈ B . 2. Pro každé a, b ∈ B platí b − a ∈ W.
Vektorový podprostor W ⊆ V se nazývá zaměření afinního podprostoru B .
Je-li dimenze afinního prostoru A rovna n a dimenze podprostoru B ⊆ A rovna n − 1, nazýváme afinní podprostor B nadrovinou v afinním prostoru A. Příklad 2.12. Ukažte, že každý vektorový podprostor daného vektorového prostoru je jeho afinním podprostorem. Příklad 2.13. Uveďte příklad vektorového prostoru V a jeho afinního podprostoru, který není jeho vektorovým podprostorem. Příklad 2.14. Charakterizujte všechny afinní podprostory B ⊆ R2 . Příklad 2.15. Charakterizujte všechny afinní podprostory B ⊆ R3 . Příklad 2.16. Uveďte příklad afinního prostoru A a množiny B ⊆ A, která splňuje všechny podmínky definice afinního podprostoru kromě podmínky 1. Příklad 2.17. Uveďte příklad afinního prostoru A a množiny B ⊆ A, která splňuje všechny podmínky definice afinního podprostoru kromě podmínky 2. Příklad 2.18. Rozhodněte, zda následující podmínka je ekvivalentní podmínce „B je afinním podprostorem A“: B je neprázdná podmnožina A a existuje podmnožina W ⊆ V tak, že jsou splněny následující podmínky: 1. Pro každé a ∈ B , v ∈ W platí a + v ∈ B . 2. Pro každé a, b ∈ B platí b − a ∈ W.
Příklad 2.19. Dokažte, že pro libovolné lineární zobrazení f : V → W vektorových prostorů V a W a bod b ∈ W platí, že je-li množina f −1 (b) neprázdná, je afinním podprostorem vektorového prostoru V. Příklad 2.20. Aplikujte předchozí tvrzení na množinu všech řešení nehomogenní soustavy lineárních rovnic. Vˇ eta 2.21. Je-li A afinní prostor se zaměřením V a B ⊆ A jeho afinní podprostor se zaměřením W ⊆ V, pak množina B spolu s vektorovým prostorem W a zobrazením AddB : B × W → B vzniklým zúžením zobrazení AddA je afinní prostor. D˚ ukaz. Přenecháme čtenáři. Je třeba ověřit podmínky definice afinního prostoru. Pro množinu B = {a ∈ A | a = a0 + v, v ∈ W }, kde W ⊆ V je vektorový podprostor, zavádíme symbolické označení B = a0 + W. (2.3) Následující věta ukazuje, že každý podprostor afinního prostoru lze charakterizovat pomocí jednoho bodu a vektorového podprostoru zaměření. Vˇ eta 2.22. Mějme afinní prostor A se zaměřením V . 1. Je-li a0 ∈ A bod a W ⊆ V vektorový podprostor, pak množina B = a0 + W je podprostor afinního prostoru A, jehož zaměření je W. 2. Je-li B podprostor afinního prostoru A se zaměřením W ⊆ V , a0 ∈ B bod, pak B = a0 + W. 7
D˚ ukaz. 1. Je třeba dokázat, že množina B společně s vektorovým podprostorem W je afinním podprostorem afinního prostoru A. Především, a0 ∈ B , což znamená, že B je neprázdná množina. Nyní ověříme obě podmínky definice afinního podprostoru: Je-li a ∈ B , pak existuje v ∈ W tak, že a = a0 + v . Pro libovolný prvek w ∈ W nyní platí a + w = (a0 + v) + w = a0 + (v + w). Vektor v + w je jistě prvkem podprostoru W (vektorový podprostor je uzavřený vzhledem k operaci sčítání vektorů), bod a0 + (v + w) je tedy prvkem množiny B . Druhá podmínka: zvolme dva prvky a, b ∈ B . Podle definice množiny B existují vektory v, w ∈ W takové, že a = a0 + v , b = a0 + w. Máme tedy b − a = (a0 + w) − (a0 + v) = w − v ∈ W (viz příklad 2.11). 2. Zde je potřeba dokázat rovnost dvou množin, tedy že libovolný prvek první množiny je prvkem druhé a naopak. To necháme na čtenáři. Příklad 2.23. Mějme dva afinní podprostory B1 , B2 afinního prostoru A takové, že B1 ∩ B2 ”= ∅. Ukažte, že množina B1 ∩ B2 je afinním podprostorem afinního prostoru A. Příklad 2.24. Obecněji: ukažte, že pokud pro neprázdný systém S afinních podprou u storů afinního prostoru A platí S ”= ∅, pak S je afinním podprostorem afinního prostoru A. Je-li (u1 , . . . , um ) báze vektorového podprostoru W ⊆ V , platí pro libovolný bod a0 ∈ A, I J
a0 + W =
m ÿ x ∈ A -- x = a0 + ti ui , t1 , . . . , tm ∈ R .
(2.4)
i=1
Rovnice
x = a0 +
m ÿ
ti ui
(2.5)
i=1
se nazývá parametrická rovnice afinního podprostoru a0 + W . Příklad 2.25. Parametrická rovnice přímky je tedy
x = a0 + tu,
(2.6)
kde a0 je libovolný bod přímky a u libovolný nenulový vektor jejího zaměření. Příklad 2.26. Parametrickou rovnici přímky lze pomocí dvou jejích různých bodů a, b napsat takto: x = a + t(b − a). (2.7) Příklad 2.27. Ukažte, že pokud dva různé body a, b leží v afinním podprostoru B ⊆ A, leží v něm i celá přímka tyto dva body obsahující.
8
3
Afinní souřadnice
Afinní báze a souřadnice v afinních prostorech hrají podobnou roli jako (vektorové) báze a souřadnice v prostorech vektorových. Představují způsob, jak prvky světa, který modelujeme, ztotožnit s n-ticemi reálných čísel, které můžeme reprezentovat v počítači a se kterými můžeme počítat. Rozlišení mezi prvky afinního prostoru a jejich souřadnicemi je podstatné pro pochopení celé problematiky afinních prostorů. V této kapitole nejprve stručně opakujeme základní pojmy z vektorových prostorů, týkající se bazí a souřadnic, a uvádíme jejich značení, které budeme používat v tomto textu. Dále zavádíme základní pojem afinní báze a afinních souřadnic a pojem matice přechodu mezi afinními bazemi, který je analogií pojmu matice přechodu mezi (vektorovými) bazemi vektorových prostorů. Matice přechodu mezi afinními bazemi jsou základním nástrojem v analytické geometrii. Pokud prostor, se kterým pracujeme, popisujeme pomocí více různých bazí (což je obvyklé), potřebujeme nějak charakterizovat vztah mezi nimi. Proto se matice přechodu mezi afinními bazemi rutinně používají v počítačové grafice.
3.1
Báze a souřadnice ve vektorových prostorech
Nejprve zavedeme značení známých pojmů z vektorových prostorů. Je-li V vektorový prostor dimenze n, α = (u1 , . . . , un ) jeho báze, pak souřadnice (souřadnicové vyjádření) vektoru v ∈ V v bázi α značíme vα . Jedná se o n-tici čísel, kterou indexujeme horními indexy a v případě, že nešetříme místem, píšeme do sloupce:
vα1 2 vα vα = .. .
(3.1)
vαn
Je-li α ¯ = (¯ u1 , . . . , u ¯n ) druhá báze vektorového prostoru V, pak matici přechodu od báze α k bázi α ¯ značíme Mα,α¯ . Pro libovolný vektor v ∈ V tedy
Platí také
vα¯ = Mα,α¯ · vα .
(3.2)
Mα,α¯ · Mα,α ¯ = E,
(3.3)
kde E je jednotková matice. Matice přechodu Mα,α¯ je složena ze souřadnic vektorů báze α vzhledem k bázi α ¯:
Mα,α¯
(u1 )1α¯ (u2 )1α¯ · · · (un )1α¯ (u1 )2α¯ (u2 )2α¯ · · · (un )2α¯ = . .. .. . . . .. (u1 )nα¯ (u2 )nα¯ · · · (un )nα¯
(3.4)
V dalším textu definujeme pojmy, které ve svém názvu obsahují slovo „báze“ (afinní báze, bodová báze). Abychom zabránili nedorozumění, budeme o bazích vektorových prostorů hovořit také jako o vektorových bazích.
9
3.2
Afinní báze a souřadnice
Mějme afinní prostor A dimenze n se zaměřením V. Pro bod a0 ∈ A a bázi α = (u1 , . . . , un ) vektorového prostoru V nazýváme dvojici ϕ = (α, a0 ) afinní bazí afinního prostoru A. Bod a0 nazýváme počátkem báze ϕ. Afinní bázi ϕ zapisujeme také jako (n + 1)-tici (u1 , . . . , un , a0 ). Pro libovolný bod a ∈ A nazýváme afinními souřadnicemi (souřadnicovým vyjádřením) bodu a vzhledem k afinní bázi ϕ = (α, a0 ) (n + 1)-tici
(a − a0 )1α (a − a )2 0 α . . . aϕ = . (a − a0 )n α 1
(3.5)
Souřadnicové vyjádření bodu a vzhledem k afinní bázi ϕ tedy vznikne tak, že se najdou souřadnice vektoru a−a0 vzhledem k bázi α vektorového prostoru V a doplní se číslem 1 (důvody této formality vysvitnou postupně). Kvůli odlišení od souřadnic vektorů budeme afinní souřadnice bodů zapisovat v hranatých závorkách. Příklad 3.1. Nalezněme souřadnice bodu a = [0, −2, 1] ∈ R3 vzhledem k afinní bázi ϕ = (α, a0 ), kde α = (u1 , u2 , u3 ) a
Máme
1 0 0 1 u1 = −1 , u2 = 1 , u3 = 1 , a0 = 0 . 0 −1 1 1
−1 a − a0 = −2 . 0
(3.6)
(3.7)
Hledáme tedy souřadnice vektoru (−1, −2, 0) v bázi α. Jelikož (jak lze zjistit například vyřešením soustavy lineárních rovnic)
dostáváme
čili
−1 1 0 0 3 3 1 −2 −1 = − − − 1 , 2 2 −1 1 0 0
−1 3 (a − a0 )α = − 2 , − 32
−1 −3 2 aϕ = 3 . −2 1
(3.8)
(3.9)
(3.10)
Je-li a0 = [0, . . . , 0] ∈ Rn a α kanonická báze vektorového prostoru Rn , nazývá se afinní báze (α, a0 ) afinního prostoru Rn kanonickou afinní bazí prostoru Rn . Příklad 3.2. V afinním prostoru R2 mají vzhledem k afinní bázi ϕ body [1, 1], [1, 2] a [−1, 1] souřadnice (po řadě) [0, 1], [0, −1] a [−2, −1]. Najděte afinní bázi ϕ. 10
Příklad 3.3. Lze změnit číselné údaje v zadání předchozího příkladu tak, aby neměl řešení? Příklad 3.4. Součet bodu a vektoru lze v afinních souřadnicích vyjádřit pomocí sčítání souřadnic, pokud k souřadnicím vektoru přidáme na konec nulu. Konkrétně: máme-li afinní souřadnicový systém ϕ = (α, a0 ) afinního prostoru A se zaměřením U , pak pro libovolný bod a ∈ A a vektor u ∈ U platí
(a + u)ϕ = =
C C
(a − a0 + u)α 1
= aϕ +
3.3
D
(a − a0 )α + 1 A
B
D
A
= uα 0
B
=
uα . 0
Matice přechodu mezi afinními bazemi
Mějme dvě afinní báze ϕ = (α, a0 ), ϕ¯ = (¯ α, a ¯0 ) afinního prostoru A dimenze n se zaměřením V. Podívejme se na následující problém: jak najít souřadnicové vyjádření bodu a ∈ A vzhledem k bázi ϕ¯, známe-li souřadnicové vyjádření tohoto bodu vzhledem k bázi ϕ? Při řešení tohoto problému můžeme předpokládat, že známe vzájemné vztahy obou bazí, tj. že známe souřadnice počátku a0 vzhledem k bázi ϕ¯ a souřadnice vektorů vektorové báze α vzhledem k vektorové bázi α ¯ a naopak. Zvolme tedy libovolný bod a ∈ A a pokusme se vypočítat jeho souřadnice vzhledem k bázi ϕ¯ pomocí souřadnic vzhledem k bázi ϕ:
(a − a ¯0 )α¯ = (a − a0 + a0 − a ¯0 )α¯ = ¯0 )α¯ = = (a − a0 )α¯ + (a0 − a = Mα,α¯ · (a − a0 )α + (a0 − a ¯0 )α¯ .
(3.11)
(Umíte zdůvodnit všechny kroky tohoto výpočtu?) Vidíme, že se nám podařilo vypočítat souřadnice bodu a vzhledem k afinní bázi ϕ¯ pomocí následujících dat: souřadnic bodu a vzhledem k afinní bázi ϕ, matice přechodu od (vektorové) báze α k bázi α ¯ a souřadnic počátku a0 vzhledem k afinní bázi ϕ¯. Hodnoty Mα,α¯ a (a0 )ϕ¯ přitom nezávisejí na volbě bodu a. Pokud tedy potřebujeme přepočítat souřadnice u více bodů, stačí tyto hodnoty vypočíst pouze jednou. Nyní ještě provedeme menší trik. Uvědomme si, že (n + 1)-tice aϕ¯ obsahuje ve svých prvních n složkách hodnoty n-tice (a − a ¯0 )α¯ . Levá strana (3.11) je tedy souřadnicové vyjádření bodu a v afinní bázi ϕ¯ kromě posledního řádku (obsahujícího jedničku). Poslední výraz v (3.11), pokud se doplní o tento řádek (obsahující jedničku), lze zase vyjádřit jako součin jisté matice a souřadnicového vyjádření aϕ . Konkrétně, pokud definujeme po blocích matici Mϕ,ϕ¯ takto:
Mϕ,ϕ¯ = bude tato matice splňovat
Mα,α¯ 0 ··· 0
(a0 )ϕ¯
aϕ¯ = Mϕ,ϕ¯ · aϕ .
(pokud vám není poslední rovnice jasná, zkuste si napsat jednoduchý příklad). Matice Mϕ,ϕ¯ se nazývá matice přechodu od afinní báze ϕ k afinní bázi ϕ¯. 11
(3.12)
(3.13)
Příklad 3.5. Napište matici přechodu od afinní báze ϕ = (e1 , e2 , a0 ) k afinní bázi ϕ¯ = (¯ e1 , e¯2 , a ¯0 ) afinního prostoru R2 , je-li
e1 = e¯1 =
A
A B
1 0
B
e2 =
−2 , e¯2 = 1
A
A
B
C D
0 0 , a0 = −1 1 B
C
D
−1 −1 , a ¯0 = . 0 0
Příklad 3.6. Ukažte, že pro tři afinní báze ϕ, ϕ, ¯ ϕÕ afinního prostoru A platí
MϕÕ ,ϕ¯ · Mϕ,ϕ ¯ = MϕÕ ,ϕ .
(3.14)
Příklad 3.7. Ukažte, že pro libovolné dvě afinní báze ϕ, ϕ¯ afinního prostoru A platí
Mϕ,ϕ¯ · Mϕ,ϕ ¯ =E
(3.15)
(E je jednotková matice). Příklad 3.8. V počítačové grafice se často používají dva typy afinních bazí k popisu pixelů na monitoru. Je-li rozlišení monitoru h × v , měla by báze prvního typu (používaného například v 2D grafice systému Windows) počátek v levém horním rohu obrazovky, souřadnice levého dolního rohu vzhledem k této bázi by byly [0, v, 1], souřadnice pravého horního [h, 0, 1]. Báze druhého typu (bližšího matematikům a používaného také v OpenGL) by měla počátek v levém dolním rohu, souřadnice levého horního by byly [0, v, 1] a pravého dolního [h, 0, 1]. Najděte matici přechodu mezi těmito bazemi.
12
4
Více o afinních podprostorech
V této kapitole nejprve zavedeme základní charakteristiku vzájemné polohy afinních podprostorů a ukážeme jednoduchá kritéria na její určování. Pak se věnujeme speciálnímu, ale často řešenému problému: hledání příčky dvou mimoběžných přímek.
4.1
Vzájemná poloha afinních podprostorů
Mějme dva afinní podprostory B1 a B2 se zaměřeními V1 , V2 afinního prostoru A se zaměřením U . O afinních podprostorech B1 , B2 řekneme, že jsou
• rovnoběžné, pokud platí V1 ⊆ V2 nebo V2 ⊆ V1 , • různoběžné, pokud nejsou rovnoběžné a pokud V1 ∪ V2 ”= ∅, • mimoběžné ve všech ostatních případech. Poznámka 4.1. Uvědomte si, že tato definice opravdu odpovídá třem typům vzájemné polohy dvou afinních podprostorů (přímek, rovin), jak je známe ze střední školy. Pokud se vám uvedená definice zdá nepřirozená (to se bude zřejmě týkat především definice rovnoběžnosti), pokuste se navrhnout definici vlastní, která by vycházela pouze z předchozích kapitol tohoto textu.
Příklad 4.2. Dokažte, že bod (tedy 0-rozměrný afinní podprostor) je rovnoběžný s libovolným jiným afinním podprostorem. Pokud jsou afinní podprostory B1 a B2 rovnoběžné, mohou nastat dva případy: buď mají společný bod, nebo nemají. Následující věta uvádí dvě podmínky, které pomáhají tyto dva případy efektivně rozlišit. Vˇ eta 4.3. Předpokládejme, že afinní podprostory B1 , B2 jsou rovnoběžné a že V1 ⊆ V2 . Následující tři podmínky jsou ekvivalentní: 1. Existuje bod b0 ∈ B1 ∩ B2 . 2. Pro každé dva body b1 ∈ B1 a b2 ∈ B2 platí b2 − b1 ∈ V2 . 3. Existují body b1 ∈ B1 a b2 ∈ B2 takové, že b2 − b1 ∈ V2 . D˚ ukaz. Předpokládejme, že platí tvrzení 1. a zvolme libovolné dva body b1 ∈ B1 a b2 ∈ B2 . Pro vektor b2 − b1 platí b2 − b1 = (b2 − b0 ) + (b0 − b1 ). Jelikož bod b2 i bod b0 leží v podprostoru B2 , máme b2 − b0 ∈ V2 . Podobně pro vektor b0 − b1 platí b0 − b1 ∈ V1 . Jelikož V1 ⊆ V2 , máme b2 − b1 ∈ V2 , což dokazuje tvrzení 2. Tvrzení 3 plyne z tvrzení 2, jelikož podprostory B1 a B2 jsou neprázdné. Pokud platí tvrzení 3, je b1 = b2 − (b2 − b1 ). Proto je tvrzení 1 splněno pro b0 = b1 . Pokud afinní podprostory nejsou rovnoběžné, mohou být různoběžné nebo mimoběžné. Následující věta pomáhá rozlišit mezi těmito dvěma případy. Vˇ eta 4.4. Předpokládejme, že afinní podprostory B1 , B2 nejsou rovnoběžné. Pak jsou následující tři podmínky ekvivalentní: 1. B1 a B2 jsou různoběžné. 2. Pro každé dva body b1 ∈ B1 a b2 ∈ B2 platí b2 − b1 ∈ V1 ∨ V2 . 13
3. Existují body b1 ∈ B1 a b2 ∈ B2 takové, že b2 − b1 ∈ V1 ∨ V2 . Poznámka 4.5. Symbolem „∨“ označujeme operaci přímého součtu vektorových podprostorů. Poznámka 4.6. Bod 2 předchozí věty můžeme využít, pokud máme dva afinní podprostory, o kterých víme, že jsou různoběžné. Naopak tvrzení bodu 3 se hodí pro situace, kdy se o dvou podprostorech potřebujeme přesvědčit, zda jsou různoběžné.
Příklad 4.7. Dokažte, že v R3 neexistují dvě mimoběžné roviny. Příklad 4.8. Najděte dvě mimoběžné roviny v R4 . Příklad 4.9. Existují v R4 dva mimoběžné podprostory dimenzí 2 a 3? Příklad 4.10. Na základě výsledků předchozích příkladů se pokuste zformulovat a dokázat obecné tvrzení.
4.2
Příčka mimoběžek
Nyní se podíváme na speciální problém nalezení příčky dvou mimoběžných přímek v trojrozměrném prostoru. V této podkapitole budeme tedy předpokládat, že dimenze afinního prostoru A je rovna 3 a afinní podprostory B1 , B2 ⊆ A jsou mimoběžné přímky. Poznámka 4.11. Uvedené výsledky lze ovšem poměrně snadno zobecnit na případ dvou mimoběžných přímek v afinním prostoru libovolné dimenze. Můžete se o to pokusit.
Příčkou mimoběžek B1 , B2 ⊆ A nazýváme libovolnou přímku C ⊆ A, která má neprázdný průnik s každou z přímek B1 , B2 . Příklad 4.12. Libovolnou volbou bodů b1 ∈ B1 , b2 ∈ B2 je určena příčka mimoběžek B1 , B2 . Je tedy zřejmé, že příček mimoběžek B1 , B2 existuje nekonečně mnoho. Z důvodu uvedeného v předchozím příkladě má smysl uvažovat o příčce mimoběžek splňující nějaké dodatečné podmínky. V obecném případě se řeší následující dvě úlohy: 1. nalézt příčku dvou mimoběžek, která má zadaný směrový vektor, 2. nalézt příčku dvou mimoběžek, která prochází zadaným bodem. Obecné řešení první úlohy uvádí následující věta. Příklad 4.13. Než začnete číst dál, pokuste se sami odpovědět na otázku: „Za jakých podmínek existuje příčka dvou mimoběžek určená daným směrovým vektorem?“ Jako pomůcka se osvědčuje představit si zadané mimoběžky pomocí nějakých reálných předmětů, například jako průnik dvou zdí a jedné zdi a stropu místnosti, ve které právě sedíte. Pak si můžete představovat různé směrové vektory a zkoušet hledanou příčku nalézt. Vˇ eta 4.14. Mějme dvě mimoběžné přímky B1 , B2 se zaměřeními V1 , V2 v trojrozměrném afinním prostoru A se zaměřením U . Dále uvažujme nenulový vektor w ∈ U . Následující dvě podmínky jsou ekvivalentní: 1. Existuje příčka mimoběžek B1 , B2 se směrovým vektorem w. 2. w ∈ / V1 ∨ V2 . Následující věta uvádí obecné řešení druhé z výše uvedených úloh.
14
Příklad 4.15. Podobně jako před předchozí větou byste se měli i zde nejprve zamyslit nad řešením této úlohy sami. S trochou geometrické představivosti lze řešení poměrně snadno odhalit. Vˇ eta 4.16. Mějme dvě mimoběžné přímky B1 = b1 + V1 a B2 = b2 + V2 v trojrozměrném afinním prostoru A a bod c ∈ A. Následující dvě podmínky jsou ekvivalentní: 1. Existuje příčka C mimoběžek B1 , B2 taková, že c ∈ C . 2. c ∈ / b1 + (V1 ∨ V2 ) a c ∈ / b2 + (V1 ∨ V2 ).
15
5
Afinní a konvexní kombinace
Některé partie probírané v této kapitole nemají přímou aplikaci v počítačové grafice, jsou ale podstatné pro pochopení problematiky afinních prostorů.
5.1
Afinní kombinace a afinní obaly
Vˇ eta 5.1. Mějme prvky a0 , a1 , . . . , am afinního prostoru A se zaměřením V . Pro libovolné dva body b, bÕ ∈ A a čísla c0 , c1 , . . . , cm taková, že c0 + c1 + · · · + cm = 1 platí
b + c0 (a0 − b) + c1 (a1 − b) + · · · + cm (am − b)
= bÕ + c0 (a0 − bÕ ) + c1 (a1 − bÕ ) + · · · + cm (am − bÕ ).
(5.1)
D˚ ukaz. Podle příkladu 2.11 je rozdíl levé a pravé strany roven
(b − bÕ ) + c0 (a0 − b + bÕ − a0 ) + c1 (a1 − b + bÕ − a1 ) + · · · · · · + cm (am − b + bÕ − am ) =
= (b − bÕ ) + c0 (bÕ − b) + c1 (bÕ − b) + · · · + cm (bÕ − b) = = (b − bÕ ) + (c0 + c1 + · · · + cm )(bÕ − b) = = (b − bÕ ) + (bÕ − b) =
= 0.
Z uvedené věty vyplývá, že hodnota výrazu b + c0 (a0 − b) + c1 (a1 − b) + · · · + cm (am − b) nezávisí na volbě bodu b. Závisí tedy pouze na bodech a0 , a1 , . . . , am a číslech c0 , c1 , . . . , cm (jejichž součet je roven 1). Tento výraz nazýváme afinní (nebo také bodovou) kombinací bodů a0 , a1 , . . . , am s koeficienty c0 , c1 , . . . , cm a značíme
c0 a0 + c1 a1 + · · · + cm am .
(5.2)
Poznámka 5.2. Tento výraz je třeba vnímat jako celek a nechápat jeho části jako výsledek aplikace nějakých operací. Body nelze násobit čísly, ani je nelze sčítat. Je třeba mít také na paměti, že v tomto výrazu musí být součet koeficientů c0 , c1 , . . . , cm roven jedné.
Příklad 5.3. Dokažte, že pokud a0 ”= a1 , je množina všech afinních kombinací c0 a0 + c1 a1 rovna přímce procházející těmito body. Poznámka 5.4. Každou afinní kombinaci více než dvou bodů lze vyjádřit pomocí afinních kombinací dvojic bodů. Ukážeme si to na příkladě afinní kombinace c0 a0 + c1 a1 + c2 a2 . Pokud je c0 + c1 ”= 0, platí 3 4 c0 c1 2 c0 a0 + c1 a1 + c2 a2 = (c0 + c1 ) 0 a + a 0 1 + c a2 c + c1 c0 + c1 0
1
(proč?), přičemž c0c+c1 + c0c+c1 = 1, takže uvnitř velké závorky je opravdu afinní kombinace dvou bodů, stejně jako je afinní kombinací dvou bodů i celý výraz, protože (c0 + c1 ) + c2 = 1.
Příklad 5.5. Pro body a1 , a2 , a3 ∈ A můžeme vypočítat nový bod a4 jako afinní kombinaci a3 + a2 − a1 (součet koeficientů je roven jedné). Také můžeme položit a ¯4 = a3 + (a2 − a1 ), kde na pravé straně uvažujeme součet bodu a3 a vektoru a2 − a1 . Ukažme, že a ¯4 = a4 . Zvolíme jako pomocný bod b bod a3 . Podle definice afinní kombinace máme
a4 = a3 + a2 − a1 =
= a3 + (a3 − a3 ) + (a2 − a3 ) − (a1 − a3 ) =
= a3 + (a2 − a3 ) + (a3 − a1 ) = = a3 + (a2 − a1 ) =
=a ¯4 .
16
Příklad 5.6. Pro bod a ∈ A a vektory u1 , u2 ze zaměření A označme b1 = a + u1 , b2 = a + u2 . Ukažte, že pro libovolná reálná čísla c1 , c2 je bod a + c1 u1 + c2 u2 (součet bodu a vektoru) roven afinní kombinaci
(1 − c1 − c2 )a + c1 b1 + c2 b2 . Zobecněte toto tvrzení na libovolný počet vektorů. Příklad 5.7. Zajímavé je, že pokud c0 + c1 + · · · + cm = 0, pak vektor
c0 (a0 − b) + c1 (a1 − b) + · · · + ck (ak − b)
(5.3)
nezávisí na volbě bodu b (přesvědčte se o tom). Body a0 , a1 , . . . , ak spolu s koeficienty c0 , c1 , . . . , ck tak jednoznačně definují vektor. Afinním obalem množiny K ⊆ A nazýváme množinu všech afinních kombinací prvků množiny K . Afinní obal množiny K označujeme symbolem Aff(K). Platí )
*
Aff(K) = c0 a0 + · · · + ck ak | k ≥ 1, a0 , . . . , ak ∈ K, c0 + · · · ck = 1 .
(5.4)
Vˇ eta 5.8. Pro libovolnou neprázdnou množinu K ⊆ A je množina Aff(K) afinním podprostorem afinního prostoru A. Tento afinní podprostor je roven průniku všech afinních podprostorů obsahujících množinu K . Jeho zaměřením je lineární obal množiny
K0 = {a − a0 | a ∈ K} ⊆ V, kde a0 ∈ K je libovolný bod. D˚ ukaz. Označme W = ÈK0 Í. W je lineární obal množiny K0 ; je to tedy vektorový podprostor vektorového prostoru V. Položme B = a0 + W. Dokážeme, že B = Aff(K). Pro libovolný prvek b ∈ B platí b = a0 + w, kde w ∈ W. Jelikož W je lineárním obalem množiny K0 , existují vektory w1 , . . . , wk ∈ K0 a čísla c1 , . . . , ck ∈ R tak, že w = c1 w1 + · · · + ck wk . Označíme-li a0 + w1 = a1 , . . . , a0 + wk = ak , máme podle příkladu 5.6 (zobecnění na libovolný počet bodů)
b = c0 a0 + c1 a1 + · · · + ck ak , kde c0 = 1 − c1 − · · · − ck . Tím jsme dokázali, že množina B je podmnožinou množiny Aff(K). Nyní zvolme libovolný prvek b ∈ Aff(K). Podle definice afinního obalu je tento prvek afinní kombinací prvků množiny K . Pokud mezi těmito prvky není bod a0 , můžeme jej k nim přidat s koeficientem afinní kombinace c0 = 0. Máme tedy
b = c0 a0 + c1 a1 + · · · + ck ak , kde a1 , . . . , ak jsou prvky množiny K , a0 je dříve zvolený bod a c0 + c1 + · · · + ck = 1. Položíme-li w1 = a1 − a0 ,. . . , wk = ak − a0 , dostaneme odtud
b − a0 = c1 w1 + · · · + ck wk . Vektor b − a0 je lineární kombinací vektorů w1 , . . . , wk , což znamená, že bod b leží v každém afinním podprostoru prostoru A, který obsahuje množinu K . Tím je dokázána opačná inkluze (tedy Aff(K) ⊆ B ) a je také dokázáno, že afinní obal Aff(K) je podmnožinou průniku všech afinních podprostorů prostoru A obsahujících množinu K. Označme tento průnik C . Již jsme dokázali, že Aff(K) ⊆ C a B ⊆ Aff(K). Jelikož B je afinní podprostor obsahující K , je také C ⊆ B . Odtud C = B . 17
Vˇ eta 5.9. Pro libovolnou neprázdnou množinu B ⊆ A jsou následující tři podmínky ekvivalentní: 1. B je afinní podprostor A. 2. Aff(B) = B . 3. Pro libovolné dva body a0 , a1 ∈ B a čísla c0 , c1 taková, že c0 +c1 = 1, platí c0 a0 +c1 a1 ∈ B. D˚ ukaz. Předpokládejme, že B ⊆ A je afinní podprostor a zvolme body a0 , a1 ∈ B . Pokud a0 = a1 , je libovolná afinní kombinace těchto bodů rovna témuž bodu a je tedy prvkem B . Pokud a0 ”= a1 , leží bod c0 a0 + c1 a1 na přímce těmito body určené (příklad 5.3), která je celá podmnožinou B (příklad 2.27). Tím je dokázáno, že podmínka 3. plyne z podmínky 1. Podmínka 2. plyne z podmínky 3. na základě poznámky 5.4: každou afinní kombinaci více bodů lze vyjádřit pomocí afinních kombinací dvojic bodů. Podmínka 1. plyne z podmínky 2. přímo pomocí věty 5.8. Poznámka 5.10. Tato věta má tvar ekvivalence. Proto by se například podmínka 3. dala použít jako definice afinního podprostoru. Mělo by to dvě zajímavé přednosti: 1. definice by byla podobnější definici vektorového podprostoru i jiných algebraických podstruktur — požadovala by čistě uzavřenost podprostoru vzhledem k „operacím“ afinního prostoru (afinní kombinace není operace, proto ty uvozovky), 2. jedná se o jednodušší a srozumitelnější podmínku, než je podmínka původní definice.
5.2
Body v obecné poloze, bodové báze a souřadnice
O bodech a0 , a1 , . . . , am ∈ A říkáme, že jsou v obecné poloze, jestliže žádný z nich není afinní kombinací ostatních, čili jestliže neexistuje číslo i ∈ {0, . . . , m} a čísla c0 , . . . , ci−1 , ci+1 , . . . , cm tak, že c0 + . . . + ci−1 + ci+1 + . . . + cm = 1 a
ai = c0 a0 + . . . + ci−1 ai−1 + ci+1 ai+1 + . . . + cm am .
(5.5)
Vˇ eta 5.11. Nechť a0 , . . . , am ∈ A. Pak následující čtyři podmínky jsou ekvivalentní: 1. Body a0 , . . . , am jsou v obecné poloze. 2. Vektory a1 − a0 , a2 − a0 , . . . , am − a0 jsou lineárně nezávislé. 3. Dimenze afinního obalu bodů a0 , . . . , am je rovna m. 4. Pokud pro dvě bodové kombinace bodů a0 , . . . , am ∈ A s koeficienty c0 , . . . , cm a c¯0 , . . . , c¯m platí c0 a0 + · · · + cm am = c¯0 a0 + · · · + c¯m am , pak
c0 = c¯0 , c1 = c¯1 , · · · , cm = c¯m .
(5.6)
D˚ ukaz. Nejprve sporem dokažme, že z podmínky 1. plyne podmínka 2. Předpokládejme, že vektory z podmínky 2. jsou lineárně závislé. Existují tedy čísla c1 , . . . , cm , ne všechna současně rovna nule a taková, že
c1 (a1 − a0 ) + · · · + cm (am − a0 ) = 0. Pro nenulový koeficient ci (takový určitě existuje) můžeme všechny členy kromě i-tého převést na pravou stranu a rovnici podělit ci :
ai − a0 = c1 ci−1 ci+1 cm = − i (a1 − a0 ) − · · · − i (ai−1 − a0 ) − i (ai+1 − a0 ) − · · · − i (am − a0 ). c c c c 18
Podle příkladu 5.6 je tedy bod ai roven afinní kombinaci
ai = da0 −
c1 ci−1 ci+1 cm a − · · · − a − a − · · · − am , 1 i−1 i+1 ci ci ci ci
kde
c1 ci−1 ci+1 cm + · · · + + + · · · + . ci ci ci ci Tak se nám podařilo vyjádřit bod ai jako afinní kombinaci ostatních bodů a dospět ke sporu s podmínkou 1. d=1+
Nyní z podmínky 2. odvodíme podmínku 4. (podmínku 3. zatím vynecháme). Podle definice afinní kombinace je rovnost c0 a0 +· · ·+cm am = c¯0 a0 +· · ·+ c¯m am ekvivalentní rovnosti
c1 (a1 − a0 ) + · · · + cm (am − a0 ) = c¯1 (a1 − a0 ) + · · · + c¯m (am − a0 ). Z lineární nezávislosti vektorů a1 − a0 , . . . , am − a0 nyní plyne rovnost koeficientů z podmínky 4. K odvození podmínky 1. z podmínky 4. si stačí uvědomit, že ve vztahu (5.5) na levé i pravé straně vystupuje afinní kombinace bodů a0 ,. . . ,am . Tyto afinní kombinace mají různé koeficienty, protože na levé straně je u bodu ai koeficient 1, zatímco na straně pravé 0. Proto z podmínky 4. plyne, že body jsou v obecné poloze. Na závěr dokážeme, že podmínka 3. je ekvivalentní s podmínkou 2. Podle věty 5.8 je zaměření afinního obalu Aff({a0 , a1 , . . . , am }) rovno lineárnímu obalu vektorů a1 − a0 , . . . , am − a0 , jehož dimenze je rovna m právě když jsou tyto vektory lineárně nezávislé. Je-li dim A = n a body a0 , . . . , an ∈ A jsou v obecné poloze, pak se (n + 1)-tice (a0 , . . . , an ) nazývá bodová báze afinního prostoru A. Z předchozí věty plyne, že je-li ϕ = (a0 , . . . , an ) bodová báze A, pak pro každý bod a ∈ A existuje právě jedna (n + 1)-tice čísel c0 , . . . , cn , jejichž součet je roven jedné a
a = c0 a0 + · · · + cn an .
(5.7)
(n + 1)-tice [c0 , . . . , cn ] (píšeme do hranatých závorek a do sloupce) se nazývá bodovými souřadnicemi bodu a vzhledem k bodové bázi ϕ. Zavádíme označení [c0 , . . . , cn ] = [a0ϕ , . . . , anϕ ] = aϕ . Mějme dvě bodové báze afinního prostoru A: ϕ = (a0 , . . . , an ), ϕ¯ = (¯ a0 , . . . , a ¯n ). Matici
Mϕ,ϕ¯
(a0 )0ϕ¯ (a1 )0ϕ¯ · · · (an )0ϕ¯ (a )1 (a )1 · · · (a )1 0 ϕ¯ 1 ϕ¯ n ϕ ¯ = .. .. .. . . . (a0 )nϕ¯ (a1 )nϕ¯ · · · (an )nϕ¯
(5.8)
nazýváme maticí přechodu od bodové báze ϕ k bodové bázi ϕ¯.
Poznámka 5.12. Matice přechodu od bodové báze ϕ k bodové bázi ϕ¯ vznikne tak, že do sloupců zapíšeme souřadnice jednotlivých prvků bodové báze ϕ vzhledem k bodové bázi ϕ¯ — tedy stejným postupem, jakým vzniká matice přechodu mezi dvěma bázemi vektorového prostoru. Poznámka 5.13. Součet prvků každého sloupce v matici přechodu mezi bodovými bazemi je roven jedné.
Vˇ eta 5.14. Pro libovolné dvě bodové báze ϕ, ϕ¯ afinního prostoru A a bod a ∈ A platí
aϕ¯ = Mϕ,ϕ¯ · aϕ . 19
(5.9)
5.3
Konvexní kombinace, konvexní množiny
Afinní kombinaci c0 a0 + c1 a1 + · · · + cm am bodů a0 , a1 , . . . , am afinního prostoru A s koeficienty c0 , c1 , . . . , cm nazýváme konvexní kombinací, jestliže všechny koeficienty c0 , c1 , . . . , cm jsou nezáporné. Konvexním obalem neprázdné podmnožiny K ⊆ A nazýváme množinu všech konvexních kombinací prvků množiny K . Uvažme množinu K = {a0 , . . . , am } bodů v obecné poloze. Konvexní obal této množiny se nazývá úsečka, je-li m = 1, trojúhelník, je-li m = 2 a čtyřstěn, je-li m = 3. Konvexní obal libovolné konečné množiny (jejíž prvky nemusejí být v obecné poloze) se nazývá mnohostěn, pokud je její afinní obal roven celému prostoru A. Neprázdná množina K ⊆ A se nazývá konvexní, je-li její konvexní obal roven K . Vˇ eta 5.15. Konvexní obal libovolné neprázdné podmnožiny afinního prostoru A je konvexní množina.
20
6
Afinní zobrazení
Afinní zobrazení jsou zobrazení, která jsou popsatelná v rámci teorie afinních prostorů. Mezi afinní zobrazení patří mnohá zobrazení, která se používají v počítačové grafice: posunutí, otočení, změna měřítka apod., jak v dvojrozměrném, tak trojrozměrném prostoru. Dále také rovnoběžné promítání (například trojrozměrného prostoru na obrazovku počítače). K popisu afinních zobrazení slouží jejich matice vzhledem k afinním bazím. Při realizaci afinních zobrazení na počítači (například v OpenGL) se pracuje s jejich maticemi. V této kapitole budeme uvažovat afinní prostory A a B se zaměřeními (po řadě) U a V.
6.1
Základní vlastnosti afinních zobrazení
Zobrazení f : A → B afinních prostorů A a B se nazývá afinní, jestliže pro libovolné dva body a1 , a2 ∈ A a jejich afinní kombinaci c1 a1 + c2 a2 platí
f (c1 a1 + c2 a2 ) = c1 f (a1 ) + c2 f (a2 ).
(6.1)
Poznámka 6.1. Pro připomenutí pojmu afinní kombinace bodů si přečtěte začátek kapitoly 5. Zejména si uvědomte, že c1 + c2 = 1. Poznámka 6.2. Podle poznámky 5.4 plyne z podmínky (6.1) její zobecnění na libovolný počet bodů: f (c0 a0 + c1 a1 + · · · + ck ak ) = c0 f (a0 ) + c1 f (a1 ) + · · · + ck f (ak ). (6.2) Součet koeficientů c0 , c1 , . . . , ck je opět roven jedné.
Příklad 6.3. Pro libovolné afinní zobrazení f : A → B platí: je-li C ⊆ A afinní podprostor, je množina f (C) afinním podprostorem afinního prostoru B . Dokažte. Vˇ eta 6.4. Mějme afinní zobrazení f : A → B . Pokud pro čtyři body a1 , a2 , a3 , a4 ∈ A platí a2 − a1 = a4 − a3 , pak f (a2 ) − f (a1 ) = f (a4 ) − f (a3 ).
D˚ ukaz. Z předpokladu věty plyne, že a4 = a3 + (a2 − a1 ). Podle příkladu 5.5 platí a4 = a3 + a2 − a1 , kde na pravé straně stojí bodová kombinace bodů a3 , a2 , a1 s koeficienty 1, 1 a −1. Podle poznámky 6.2 tedy f (a4 ) = f (a3 ) + f (a2 ) − f (a1 ), neboli, opět podle příkladu 5.5, f (a4 ) = f (a3 ) + (f (a2 ) − f (a1 )) (součet bodu a vektoru). Odtud tvrzení věty. Označíme-li ve větě 6.4 vektor a2 − a1 = a4 − a3 písmenem u, dostaneme f (a1 + u) − f (a1 ) = f (a3 + u) − f (a3 ). Vektor
f0 (u) = f (a0 + u) − f (a0 )
(6.3)
z vektorového prostoru V tedy nezávisí na volbě bodu a0 ∈ A, ale pouze na vektoru u ∈ U . Předpis (6.3) tedy definuje zobrazení f0 : U → V .
Zobrazení f0 : U → V definované předpisem (6.3) se nazývá zobrazení podřízené afinnímu zobrazení f . Přepsání vztahu (6.3) do tvaru
f (a0 + u) = f (a0 ) + f0 (u)
(6.4)
ukazuje, že ke zjištění hodnoty afinního zobrazení f v bodě a0 + u stačí znát jeho hodnotu v bodě a0 a hodnotu podřízeného zobrazení ve vektoru u. Pokud označíme a0 + u = a, dostaneme jinou verzi tohoto vztahu,
f (a) = f (a0 ) + f0 (a − a0 ), 21
(6.5)
která ukazuje, jak lze vypočíst hodnotu afinního zobrazení f v libovolném bodě a, pokud známe jeho hodnotu v bodě a0 a umíme vypočítat hodnotu podřízeného zobrazení ve vektoru a − a0 . Následující věta ukazuje základní vlastnost zobrazení podřízeného afinnímu zobrazení. Vˇ eta 6.5. Pro libovolné afinní zobrazení f : A → B je podřízené zobrazení f0 : U → V lineární. D˚ ukaz. Podle (6.3) pro libovolné skaláry c1 , c2 ∈ R, vektory u1 , u2 ∈ U a bod a0 ∈ A máme f0 (c1 u1 + c2 u2 ) = f (a0 + c1 u1 + c2 u2 ) − f (a0 ). Označme a0 + u1 = b1 , a0 + u2 = b2 . Podle příkladu 5.6 je bod a0 + c1 u1 + c2 u2 roven afinní kombinaci (1 − c1 − c2 )a0 + c1 b1 + c2 b2 , takže
f (a0 + c1 u1 + c2 u2 ) = f ((1 − c1 − c2 )a0 + c1 b1 + c2 b2 ) =
= (1 − c1 − c2 )f (a0 ) + c1 f (b1 ) + c2 f (b2 ).
Nyní si uvědomme, že f (b1 ) = f (a0 ) + f0 (u1 ) a f (b2 ) = f (a0 ) + f0 (u2 ). Proto se, opět podle příkladu 5.6, poslední výraz rovná
f (a0 ) + c1 f0 (u1 ) + c2 f0 (u2 ). Vrátíme-li se nyní k začátku důkazu, dostaneme
f0 (c1 u1 + c2 u2 ) = f (a0 + c1 u1 + c2 u2 ) − f (a0 ) =
= f (a0 ) + c1 f0 (u1 ) + c2 f0 (u2 ) − f (a0 ) =
= c1 f0 (u1 ) + c2 f0 (u2 ).
Tím je dokázáno, že zobrazení f0 je opravdu lineární. Vˇ eta 6.6. Pro libovolné dva body a0 ∈ A, b0 ∈ B a lineární zobrazení f0 : U → V existuje právě jedno afinní zobrazení f : A → B takové, že f (a0 ) = b0 a f0 je podřízené zobrazení f . D˚ ukaz. Ze vztahu (6.5) plyne, že je-li dána hodnota zobrazení f v bodě a0 a podřízené zobrazení f0 , jsou hodnoty zobrazení f ve všech ostatních bodech afinního prostoru A jednoznačně určeny. Zobrazení f daných vlastností tedy existuje nejvýše jedno a pokud existuje, je dáno vztahem (6.5). Je tedy třeba dokázat, že zobrazení f dané tímto vztahem je afinní s podřízeným zobrazením f0 . Zvolme tedy libovolně dva body a1 , a2 ∈ A a čísla c1 , c2 ∈ R taková, že c1 + c2 = 1. Dále označme a1 − a0 = u1 , a2 − a0 = u2 . Podle vztahu (6.5) máme
f (c1 a1 + c2 a2 ) = b0 + f0 (c1 a1 + c2 a2 − a0 ) = = b0 + f0 (c1 u1 + c2 u2 ) =
= b0 + c1 f0 (u1 ) + c2 f0 (u2 ) = = c1 f0 (a1 ) + c2 f0 (a2 ). f je tedy afinní zobrazení. Hodnota jeho podřízeného zobrazení ve vektoru u ∈ U je podle (6.1) rovna f (a0 + u) − f (a0 ) = f (a0 ) + f0 (u) − f (a0 ) = f0 (u). f0 je tedy podřízeným zobrazením afinního zobrazení f .
22
6.2
Matice afinního zobrazení vzhledem k afinním bazím
Mějme afinní bázi ϕ = (α, a0 ), α = (u1 , . . . , um ) afinního prostoru A se zaměřením U a afinní bázi ψ = (β, b0 ), β = (v1 , . . . , vn ) afinního prostoru B se zaměřením V . Dále mějme afinní zobrazení f : A → B s podřízeným lineárním zobrazením f0 : U → V . Naším cílem je najít způsob, jak ze souřadnicového vyjádření aϕ bodu a ∈ A vzhledem k bázi ϕ vypočítat souřadnicové vyjádření f (a)ψ jeho obrazu f (a) při zobrazení f vzhledem k bázi ψ . Máme
f (a) = f0 (a − a0 ) + f (a0 ), f0 čili podle příkladu 3.4 a s použitím matice Mα,β lineárního zobrazení f0 vzhledem k bazím α, β ,
f (a)ψ =
A
=
f0 (a − a0 )β 0
f0 Mα,β
0 ··· 0
B
+ f (a0 )ψ =
A
f0 Mα,β · (a − a0 )α 0
B
+ f (a0 )ψ
· (a − a0 )α + f (a0 )ψ .
Pokud nyní sestavíme blokovou matici
f Mϕ,ψ =
dostaneme
f0 Mα,β
0 ··· 0
f (a0 )ψ ,
(6.6)
f f (a)ψ = Mϕ,ψ · aϕ .
f Matice Mϕ,ψ se nazývá matice zobrazení f vzhledem k bazím ϕ, ψ .
K sestavení této matice potřebujeme následující údaje: matici lineárního zobrazení f0 vzhledem k vektorovým bazím α, β a souřadnice bodu f (a0 ) vzhledem k afinní bázi ψ. Příklad 6.7. Matice identického zobrazení idA : A → A vzhledem k bazím α, αÕ je rovna matici přechodu mezi těmito bazemi: idA Mα,α Õ = Mα,αÕ .
23
(6.7)
7
Projektivní prostory
Tato kapitola obsahuje úvod do teorie projektivních prostorů, který by měl čtenáři umožnit pochopit základy geometrických transformací používaných v trojrozměrné počítačové grafice. Základem kapitoly jsou definice v podkapitole 7.3, k jejichž pochopení je ale vhodné nastudovat motivační příklad z podkapitoly 7.2 a také první podkapitolu 7.1, která se snaží ukázat podrobně souvislost projektivních prostorů a dříve probíraných prostorů afinních. Tuto podkapitolu je vhodné zvládnout alespoň v rozsahu konkrétního příkladu z vektorového prostoru R3 , který se jejím textem prolíná. Studenti s hlubším zájmem o počítačovou grafiku a související teorii by ji měli nastudovat celou. Poslední podkapitolu 7.4 by měli nastudovat všichni, protože obsahuje základní aplikace probírané teorie. Ve většině textu této kapitoly jsou prvky afinních prostorů současně vektory v nějakých prostorech vektorových. Proto není vždy možné striktně rozlišovat mezi body a vektory, což se projevuje i na značení, v němž se volba mezi hranatými a kulatými závorkami nemůže řídit přísnými kritérii. Toto je pracovní verze části chystaného učebního textu s pracovním názvem Geometrie pro informatiky. Některé poznatky z předchozích částí, které zatím nejsou k dispozici, jsou připomenuty v poznámkách pod čarou.
7.1
Afinní podprostory vektorových prostorů
Uvažme nadrovinu A ve vektorovém prostoru prostoru R3 danou předpisem Ó
Ô
(7.1)
Ó
Ô
(7.2)
A = (x1 , x2 , x3 ) ∈ R3 | x3 = 1 . Zaměřením této nadroviny je vektorový podprostor
A0 = (x1 , x2 , x3 ) ∈ R3 | x3 = 0 .
Prvky nadroviny A hrají dvojí roli. Jsou to body v afinním prostoru A a současně vektory ve vektorovém prostoru R3 . Prvky vektorového podprostoru A0 , který je zaměřením afinního prostoru A, jsou tedy vektory téhož vektorového prostoru jako prvky afinního prostoru A. Podívejme se podrobněji, co lze z těchto souvislostí vytěžit. Nejprve si uvědomme, jak lze v této situaci interpretovat základní operaci v afinních prostorech, sčítání bodu a vektoru. Víme, že prostor R3 je afinní prostor, v němž je sčítání bodu a vektoru totožné se sčítáním vektorů ve vektorovém prostoru.2 Protože afinní prostor A je afinním podprostorem afinního prostoru R3 a jeho zaměřením je vektorový podprostor A0 ⊂ R3 , přenese se tato vlastnost i na tento podprostor: pro libovolný bod a ∈ A a vektor v ∈ A0 je součet bodu a vektoru a + v roven součtu a + v vektorů v R3 . Ze vztahů (7.1) a (7.2) vyplývá, jak vypadají složky vektorů a a v. Zatímco třetí složka vektoru a je rovna jedné, vektor v má třetí složku nulovou:
2
a1 v1 2 2 a = a ,v = v . 1 0
(7.3)
Na každém vektorovém prostoru V lze zavést strukturu afinního prostoru se zaměřením V . Sčítání bodu a vektoru je v takto definovaném afinním prostoru rovno sčítání dvou vektorů v původním prostoru vektorovém.
24
Odtud je také vidět, že součet a + v bude prvkem podprostoru A, protože bude mít stejně jako bod a třetí složku rovnu jedné:
a1 v1 a1 + v 1 2 2 2 a + v = a + v = a + v2 . 1 0 1
(7.4)
Nyní se podívejme, jakým způsobem lze v této situaci interpretovat afinní báze afinního prostoru A. Uvažme vektorovou bázi v1 , v2 , a0 ∈ R3 takovou, že v1 , v2 ∈ A0 (A0 je zaměření nadroviny A, viz (7.2)) a a0 ∈ A. Vektory v1 , v2 mají tedy svou třetí složku nulovou, vektor a0 rovnu jedné:
v11 v21 a10 2 2 2 v1 = v1 , v2 = v2 , a0 = a0 . 0 0 1
(7.5)
Vektory v1 , v2 jsou lineárně nezávislé a tvoří bázi vektorového podprostoru A0 . Podle definice afinní báze je tedy trojice (v1 , v2 , a0 ) afinní bazí afinního prostoru A.3 Zvolme nyní libovolný bod a ∈ A a podívejme se, co lze zjistit o jeho souřadnicích ve zvolené bázi. Pokud a = c1 v1 + c2 v2 + c0 a0 , (7.6) pak, rozepsáno po složkách,
a1 v11 v21 a10 2 2 2 2 a = c1 v1 + c2 v2 + c0 a0 1 0 0 1
c1 v11 + c2 v21 + c0 a10 = c1 v12 + c2 v22 + c0 a20 . c0
Vidíme, že c0 = 1, a souřadnice libovolného bodu a ∈ A v afinní bázi (v1 , v2 , a0 ) jsou tvaru (c1 , c2 , 1). Tím dostává dříve uvedená formální konvence přidávání jedničky k souřadnicím prvku afinního prostoru v afinní bázi zajímavý význam. Jak ukazuje následující věta, dosud uvedené poznatky mají obecnější platnost. Vˇ eta 7.1. Mějme vektorový prostor V dimenze n + 1 a afinní nadrovinu A ⊂ V se zaměřením A0 ⊂ V, neobsahující nulový vektor. Dále uvažujme vektory v1 , . . . , vn , a0 ∈ V tvořící bázi vektorového prostoru V a takové, že v1 , . . . , vn ∈ A0 a a0 ∈ A. Pak libovolný vektor a ∈ V leží v nadrovině A, právě když je poslední složka jeho souřadnic v této bázi rovna jedné. Navíc, (n + 1)-tice (v1 , . . . , vn , a0 ) je afinní bazí afinního prostoru A a souřadnice libovolného bodu a ∈ A vzhledem k této bázi jsou stejné, ať tuto bázi uvažujeme jako afinní bázi afinního prostoru A, nebo vektorovou bázi vektorového prostoru V. D˚ ukaz. Zvolme libovolný bod a ∈ A a vyjádřeme jej jako lineární kombinaci vektorů báze v1 , . . . , vn , a0 : a = c1 v1 + · · · + cn vn + c0 a0 . (7.7) Odtud plyne
c0 a0 = a − c1 v1 − · · · − cn vn ,
(7.8)
což znamená, že c0 a0 ∈ A. Vzhledem k tomu, že podprostor A neobsahuje nulový vektor a a0 ∈ A, musí být c0 = 1. Opačně, pokud v (7.7) je c0 = 1, musí být a ∈ A, protože je vyjádřeno jako součet bodu a0 ∈ A a vektoru c1 v1 + · · · + cn vn ∈ A0 . Zbytek důkazu přenecháváme čtenáři. 3
Prověřte podrobně platnost všech podmínek definice afinní báze.
25
Vraťme se nyní k afinnímu prostoru A ⊂ R3 danému předpisem (7.1) a podívejme se podrobněji na bodové kombinace a bodové báze v tomto prostoru. Zvolme n + 1 bodů a0 , a1 , . . . , an ∈ A. Tyto body jsou současně vektory v R3 , takže můžeme udělat jejich lineární kombinaci s libovolnými koeficienty c0 , c1 , . . . , cn ∈ R. Dostaneme vektor a = c0 a0 + c1 a1 + · · · + cn an ∈ R3 , který jistě nemusí ležet v podprostoru A. Aby tam ležel, je nutné, aby byla jeho třetí složka rovna 1. Rozepišme si tedy tuto lineární kombinaci po složkách a podívejme se, co to znamená:
a1 a10 a11 a1n 2 2 2 2 a = c0 a0 + c1 a1 + · · · + cn an a3 1 1 1
c0 a10 + c1 a11 + · · · + cn a1n = c0 a20 + c1 a21 + · · · + cn a2n . c0 + c1 + · · · + cn
Vidíme, že vektor a bude ležet v podprostoru A jedině když bude c0 + c1 + · · · + cn = 1. Pojďme teď interpretovat prvky a0 , a1 , . . . , an jako body v afinním prostoru A a udělejme jejich bodovou kombinaci a ¯ = c0 a0 + c1 a1 + · · · + cn an . Víme, že tuto bodovou kombinaci můžeme vypočíst jako bodovou kombinaci v afinním prostoru R3 .4 Dále víme,5 že bodové kombinace v R3 lze počítat jako kombinace lineární.
Z uvedeného vyplývá, že bodové kombinace bodů z afinního podprostoru A lze počítat jako lineární kombinace v R3 , chápeme-li tyto body jako vektory v R3 . Dokažme si toto tvrzení v obecnější podobě: Vˇ eta 7.2. Je-li A afinní podprostor vektorového prostoru V neobsahující nulový vektor a v0 , v1 , . . . , vn jsou jeho prvky, pak lineární kombinace v = c0 v0 + c1 v1 + · · · + cn vn je také jeho prvkem, právě když c0 + c1 + · · · + cn = 1. Pro bodovou kombinaci v¯ těchto prvků, chápaných jako body z A, a s týmiž koeficienty, platí v¯ = v . D˚ ukaz. Předpokládejme nejprve, že c0 + c1 + · · · + cn = 1. Pak
v − v0 = c0 v0 + c1 v1 + · · · + cn vn − v0
= c0 v0 + c1 v1 + · · · + cn vn − (c0 + c1 + · · · + cn ) v0
= c0 v0 + c1 v1 + · · · + cn vn − c0 v0 − c1 v0 − · · · − cn v0 = c1 (v1 − v0 ) + · · · + cn (vn − v0 ).
Zjistili jsme, že vektor v − v0 je lineární kombinací vektorů v1 − v0 , . . . , vn − v0 , které všechny leží v zaměření afinního podprostoru A (vznikly totiž jako rozdíly bodů z tohoto podprostoru). Vektor v − v0 tedy v tomto zaměření leží také, což znamená, že v ∈ A. Tím je dokázáno, že pokud je součet koeficientů c0 , c1 . . . , cn roven jedné, leží vektor v v podprostoru A. Předpokládejme nyní, že c0 + c1 + · · · + cn = k ”= 1 a dokažme, že pak v ∈ / A. Pokud k ”= 0, pak z předchozí části důkazu plyne, že vektor k1 v leží v podprostoru A, neboť vznikl jako lineární kombinace k1 c0 v0 + k1 c1 v1 +· · ·+ k1 cn vn , která má součet koeficientů roven jedné. Vektory v a k1 v jsou ovšem různé a určují přímku, která prochází nulovým vektorem. Pokud by tedy vektor v ležel v A, ležel by v tomto podprostoru i nulový vektor, což je vyloučeno v předpokladu věty. Dokázali jsme tedy, že pokud k ”= 0, vektor v v podprostoru A neleží. 4
Jsou-li a0 , a1 , . . . , an body afinního podprostoru B ⊆ A, je jedno, jestli jejich bodovou kombinaci c0 a0 + c1 a1 + · · · + cn an počítáme v afinním prostoru B , nebo A; vždy dostaneme stejný výsledek. 5 Je-li V vektorový prostor, v = c0 v0 + c1 v1 + · · · + cn vn lineární kombinace jeho prvků s koeficienty c0 , c1 , . . . , cn ∈ R splňujícími c0 + c1 + · · · + cn = 1, a v¯ = c0 v0 + c1 v1 + · · · + cn vn bodová kombinace s týmiž koeficienty, pak v = v¯.
26
Nyní se věnujme zbývajícímu případu, kdy k = 0. Pro libovolný vektor v0 ∈ A nyní platí v0 + v ∈ A. K pochopení tohoto vztahu si stačí uvědomit, že vektor v0 + v lze napsat jako lineární kombinaci vektorů v0 , v1 , . . . , vn se součtem koeficientů rovným jedné, a použít již dokázanou část věty. Proto vektor v leží v zaměření afinního prostoru A, což je, jak víme,6 vektorový podprostor prostoru V , který má stejnou dimenzi jako prostor A a je s ním rovnoběžný. Kdyby vektor v ležel v A, musel by tedy podprostor A obsahovat nulový vektor.7 Tím je dokázáno, že ani pro k = 0 neleží vektor v v podprostoru A. Poslední část věty se dokáže stejně jako speciální případ uvedený před větou. Pokračujme v našich úvahách o nadrovině A ⊆ R3 z (7.1) a uvažme tři body a0 , a1 , a2 ∈ A, které jsou lineárně nezávislé jako vektory v R3 . Jak jsme již zjistili, bodové kombinace v A lze počítat jako lineární kombinace v R3 s týmiž koeficienty. Proto je snadné dokázat, že body a0 , a1 , a2 jsou v obecné poloze. Kdyby totiž například bod a0 byl bodovou kombinací ostatních,
a0 = c1 a1 + c2 a2 , kde c1 + c2 = 1, platil by tentýž vztah i pro prvky a0 , a1 , a2 chápané jako vektory, což by bylo v rozporu s jejich předpokládanou lineární nezávislostí. Předpokládejme naopak, že body a0 , a1 , a2 jsou v obecné poloze a jsou přitom jako vektory lineárně závislé. Existují tedy koeficienty c0 , c1 , c2 , ne všechny různé od nuly, tak, že lineární kombinace c0 a0 +c1 a1 +c2 a2 je nulová. Rozepíšeme-li si to po složkách,
a10 a11 a12 c0 a10 + c1 a11 + c2 a12 0 2 2 2 c0 a0 + c1 a1 + c2 a2 = c0 a20 + c1 a21 + c2 a22 = 0 , 1 1 1 c0 + c1 + c2 0
vidíme, že c0 + c1 + c2 = 0. Zároveň je jeden z těchto koeficientů nenulový. Je celkem jedno, který to je, předpokládejme, že je to třeba c0 . Můžeme tedy odvodit, že −c1 −c2 = c0 , neboli − cc10 − cc20 = 1 a c1 c2 a0 = − a1 − a2 . c0 c0 Tím se nám podařilo vyjádřit bod a0 jako bodovou kombinaci bodů a1 a a2 a dospět ke sporu. Vektory a0 , a1 a a2 jsou tedy lineárně nezávislé. Obecnější tvrzení se složitějším důkazem uvádí následující věta: Vˇ eta 7.3. Mějme afinní podprostor A vektorového prostoru V neobsahující nulový vektor a prvky v0 , v1 , . . . , vn ∈ A. Pak tyto prvky jsou lineárně nezávislé jako vektory v V , právě když jsou v obecné poloze jako body v A. D˚ ukaz. Obecnou polohu bodů v0 , v1 , . . . , vn ∈ A za předpokladu jejich lineární nezávislosti jako vektorů ve vektorovém prostoru V lze dokázat přesně stejně jako ve speciálním případě uvedeném před větou. Proto uvedeme pouze důkaz opačného směru. Předpokládejme, že body v0 , v1 , . . . , vn ∈ A jsou v obecné poloze a že jako vektory nejsou lineárně nezávislé. Proto existují čísla c0 , c1 , . . . , cn ∈ R ne všechna současně nulová a taková, že c0 v0 + c1 v1 + · · · + cn vn = 0. Pokud je součet těchto čísel nulový, lze důkaz provést přímým zobecněním důkazu uvedeného před touto větou. Zbývá tedy vyřešit pouze případ, kdy c0 + c1 + · · · + cn ”= 0. Označme součet těchto čísel k a uvažme lineární kombinaci c0 c1 cn v0 + v1 + · · · + vn = 0. k k k 6
Připomeňte si, jak vypadá zaměření afinního podprostoru vektorového prostoru. Dva rovnoběžné afinní podprostory stejné dimenze jsou buď disjunktní (nemají žádný společný bod), nebo shodné. 7
27
Součet koeficientů této lineární kombinace je roven jedné, jedná se tedy současně o kombinaci bodovou. Dospíváme k závěru, že 0 ∈ A, což je ve sporu s předpokladem věty. Následující důsledek je speciálním případem uvedené věty pro dim A = n. D˚ usledek 7.4. Je-li A ⊂ V nadrovina v (n + 1)-rozměrném vektorovém prostoru V neobsahující nulový vektor, pak body a0 , a1 , . . . , an ∈ A tvoří bodovou bázi afinního prostoru A, právě když tvoří bázi vektorového prostoru V. Důsledek 7.4 ukazuje kritérium, umožňující prostředky lineární algebry rozhodnout, zda je daná (n + 1)-tice bodů afinního prostoru A jeho bodovou bazí. Věta 7.2 ukazuje jakým způsobem lze prostředky lineární algebry počítat bodové kombinace bodů z A. Vraťme se k našemu základnímu příkladu a uvažme libovolné afinní zobrazení f: A → A. Dále zvolme afinní bázi (v1 , v2 , a0 ) prostoru A takto:
1 0 0 v1 = 0 , v2 = 1 , a0 = 0 0 0 1
(7.9)
(uvědomte si, že opravdu v1 , v2 ∈ A0 a a0 ∈ A). Tato báze je současně kanonickou vektorovou bazí v R3 , takže souřadnice vektorů v této bázi jsou rovny jejich složkám. Matice afinního zobrazení f vzhledem k této kanonické bázi bude mít tento tvar:
p11 p12 p13 2 2 2 M = p1 p2 p3 0 0 1
(7.10)
a obraz f (a) bodu a ∈ A, a = (a1 , a2 , 1), se vypočítá jako maticový součin
p11 p12 p13 a1 2 2 2 2 f (a) = M · a = p1 p2 p3 a 0 0 1 1
p11 a1 + p12 a2 + p13 2 1 = p1 a + p22 a2 + p23 . 1
Nyní uvažme lineární zobrazení F : R3 → R3 , které má v bázi (7.9) tutéž matici M. Obraz F (a) bodu a ∈ A při tomto zobrazení se vypočítá stejným maticovým součinem M · a jako obraz f (a). Lineární zobrazení F má tedy na množině A stejné hodnoty jako afinní zobrazení f . Zvolme nyní naopak libovolné lineární zobrazení F : R3 → R3 a předpokládejme, že toto zobrazení zobrazuje prvky množiny A do A, neboli, že pro každý bod a ∈ A platí F (a) ∈ A. Pokud toto zobrazení má vzhledem ke kanonické bázi v R3 matici
p11 p12 p13 2 2 2 M = p1 p2 p3 , p31 p32 p33
pak pro libovolný bod a ∈ A, a = (a1 , a2 , 1), platí
(7.11)
p11 p12 p13 a1 2 2 2 2 f (a) = M · a = p1 p2 p3 a p31 p32 p33 1
p11 a1 + p12 a2 + p13 2 1 = p1 a + p22 a2 + p23 . p31 a1 + p32 a2 + p33 28
Pokud má být vektor F (a) prvkem podprostoru A, musí být jeho třetí složka rovna jedné, takže musí platit p31 a1 + p32 a2 + p33 = 1. (7.12) Tato rovnice musí platit pro libovolnou dvojici (a1 , a2 ). Postupným dosazením dvojic (0, 0), (1, 0) a (0, 1) zjistíme, že p33 = 1, p31 = 0 a p32 = 0. Matice M je tedy tvaru (7.10). Obecnou verzi právě obdrženého výsledku zformulujeme v následujících dvou větách. Vˇ eta 7.5. Mějme vektorový prostor V dimenze n + 1, vektorový prostor W dimenze m + 1 a afinní nadroviny A ⊂ V a B ⊂ W neobsahující nulové vektory. Pak k libovolnému afinnímu zobrazení f: A → B existuje právě jedno lineární zobrazení F : V → W takové, že pro každý bod a ∈ A platí F (a) = f (a). Naopak, jestliže pro lineární zobrazení F : V → W platí F (A) ⊆ B, pak zobrazení f : A → B, vzniklé zúžením tohoto zobrazení na podprostory A a B, je afinní. D˚ ukaz. Zvolme bodovou bázi a0 , a1 , . . . , an afinního prostoru A. Víme (Důsledek 7.4), že její prvky tvoří vektorovou bázi vektorového prostoru V. Proto existuje právě jedno lineární zobrazení F: V → W takové, že
F (a0 ) = f (a0 ), F (a1 ) = f (a1 ), .. .
(7.13)
F (an ) = f (an )
(zde je možná vhodné zopakovat si, co víme z lineární algebry o lineárních zobrazeních). Abychom dokázali, že se jedná o hledané lineární zobrazení, zvolme libovolný bod a ∈ A a dokažme, že F (a) = f (a). Jelikož body a0 , a1 , . . . , an tvoří bodovou bázi afinního prostoru A, existují čísla c0 , c1 , . . . , cn taková, že c0 + c1 + · · · + cn = 1 a a = c0 a0 + c1 a1 + · · · + cn an . Tuto kombinaci můžeme díky Větě 7.2 chápat podle potřeby jako bodovou nebo lineární. Platí tedy
F (a) = = = = =
F (c0 a0 + c1 a1 + · · · + cn an ) c0 F (a0 ) + c1 F (a1 ) + · · · + cn F (an ) c0 f (a0 ) + c1 f (a1 ) + · · · + cn f (an ) f (c0 a0 + c1 a1 + · · · + cn an ) f (a).
(F je lineární zobrazení) (podle (7.13)) (f je afinní zobrazení)
K důkazu druhé části věty si stačí zopakovat, co víme o afinních prostorech vytvořených z prostorů vektorových8 a o zúžení afinních zobrazení na afinní podprostory9 .
7.2
Perspektivní promítání
V počítačové grafice je potřeba kromě afinních zobrazení používat ještě zobrazení jiného typu. Platí to především o perspektivním promítání. Uveďme jednoduchý příklad z dvourozměrného prostoru. Představme si pozorovatele umístěného v prostoru R2 do bodu [0, 0] a hledícího ve směru osy y. Veškeré předměty, které pozorovatel vidí, se mu promítají na přímku (v přirozenějším trojrozměrném příkladě by to byla rovina). Nazvěme tuto přímku projekční plátno a stanovme, že bude mít rovnici y = 1. Každý viditelný bod z prostoru R2 se na projekčním plátně zobrazí do bodu, který vznikne jako jeho průsečík se spojnicí bodu a umístění pozorovatele. 8
Na každém vektorovém prostoru lze zavést strukturu afinního prostoru. Lineární zobrazení mezi jsou současně afinní. 9 Zúžení afinního zobrazení na afinní podprostor je rovněž afinní zobrazení.
29
Popsaným způsobem vzniká zobrazení f podmnožiny R2 na projekční plátno, které je příkladem perspektivního promítání. Není těžké odvodit rovnici tohoto zobrazení: 5
6
x f [x, y] = ,1 . y
(7.14)
Zobrazení f ovšem není afinní; jistě neexistuje matice
taková, že
p11 p12 p13 2 2 2 M = p1 p2 p3 0 0 1
(7.15)
x p11 p12 p13 x 2 2 2 y p1 p2 p3 · y = 1 . 0 0 1 1 1
(7.16)
Zajímavé ovšem je, že pokud zvolíme matici M takto:
dostaneme
100 M = 0 1 0, 010
(7.17)
x 100 x x M · y = 0 1 0 · y = y , 1 1 y 010
(7.18)
což sice není výsledek, který jsme chtěli získat, ale po vydělení všech tří složek číslem y nám požadovaná trojice [ xy , 1, 1] obdržíme. Poslední složka souřadnic bodu vzhledem k afinní bázi, která je vždy rovna jedné, byla v předchozích kapitolách používána pouze jako formální doplněk, stejně jako poslední řádek matice afinního zobrazení vzhledem k afinním bazím. Tento zvláštní tvar souřadnicového vyjádření bodu a matice zobrazení usnadňoval výpočet obrazu bodu v afinním zobrazení, protože jej redukoval na maticové násobení. Tyto formality ovšem mají jednoduchý geometrický význam, který si nyní můžeme vysvětlit. Přidání jedničky k souřadnicím bodu znamená, že tento bod nepovažujeme za prvek prostoru dimenze n, ale za prvek určitého podprostoru prostoru dimenze n + 1. Konkrétněji řečeno, pokud místo bodu [x, y] uvažujeme bod [x, y, 1], dostáváme bod, který je prvkem množiny R3 , a to konkrétně její podmnožiny A, definované vztahem (7.1). Pokud touto trojicí násobíme nějakou matici typu 3 × 3, aplikujeme na ni nějaké lineární zobrazení z R3 do R3 . Pokud bude matice tvaru (7.10), půjde o zobrazení, které prvky množiny A zobrazuje opět na prvky množiny A (čili trojice se třetí složkou rovnou jedné opět na trojice se třetí složkou rovnou jedné). Pokud tohoto tvaru nebude, zobrazí se některé prvky množiny A mimo ni. Jaký má tedy v této souvislosti význam použití matice (7.17)? Tato matice definuje lineární zobrazení F: R3 → R3 ,
100 x x F (x, y, z) = 0 1 0 · y = y , z y 010
(7.19)
které ovšem, jak jsme již zjistili, nezobrazuje prvky množiny A do této množiny, neboť vektory (x, y, 1) zobrazuje na (x, y, y), což jsou vektory, jejichž třetí složka nemusí být rovna jedné (to nastane pouze v případě y = 1, tedy pokud promítaný bod leží 30
přímo na projekčním plátně). Jak jsme ale před chvílí experimentálně vyzkoušeli, můžeme vektor (x, y, y) „normovat“10 tak, aby byla jeho třetí složka rovna jedné, a získat hledaný vektor: x x 1 y (7.20) y = 1 . y y 1 Víme, že násobky nenulového vektoru v ve vektorovém prostoru leží všechny v jeho jednorozměrném vektorovém podprostoru ÈvÍ, který je tímto vektorem generovaný. V případě afinního podprostoru A ⊂ R3 z (7.1) má každá přímka ÈvÍ s tímto podprostorem nejvýše jednoprvkový průnik, který lze vypočítat právě uvedeným normováním. Pokud je vektor v rovnoběžný s rovinou A, je průnik jím určené přímky a roviny A prázdný. To nastane právě v případě, kdy je třetí složka vektoru v nulová. Z uvedeného vyplývá, že pokud při násobení matice M a vektoru v = (x, y, 1) nedostaneme přímo prvek prostoru A, ale vektor s nenulovou třetí složkou, můžeme jeho normováním jednoznačně určený prvek podprostoru A získat. Vypadá to tedy, že se nám podařilo najít způsob, jak rozšířit množinu afinních transformací afinního prostoru A na množinu zobrazení s maticemi obecnějšího tvaru. Jeho podstatou je zjištění, že každý bod podprostoru A může být rovnocenně reprezentován libovolným nenulovým vektorem ležícím v přímce určené tímto bodem a nulovým vektorem, neboli každý bod podprostoru A lze reprezentovat jednorozměrným vektorovým podprostorem R3 , který tímto bodem prochází. Tento poznatek má jeden zajímavý důsledek. Jednorozměrné vektorové podprostory v R3 , které jsou rovnoběžné s podprostorem A, s ním mají prázdný průnik a nereprezentují žádný jeho bod. Jak postupně pochopíme, tyto podprostory lze s výhodou použít k přidání tzv. nevlastních bodů k podprostoru A, které slouží k reprezentaci bodů „ležících v nekonečnu.“11
7.3
Základní pojmy
Mějme vektorový prostor V dimenze n + 1, kde n ≥ −1. Množinu P (V ) všech jednorozměrných vektorových podprostorů prostoru V nazveme projektivním prostorem nad vektorovým prostorem V. Prvky projektivního prostoru P (V ) nazýváme geometrickými body. Je-li a ∈ P (V ) geometrický bod, pak libovolný vektor v ∈ a nazýváme jeho aritmetickým zástupcem. Pro aritmetického zástupce v geometrického bodu a platí a = ÈvÍ.
Číslo n nazýváme dimenzí projektivního prostoru P (V ) a označujeme dim P (V ). Je-li n = 0, nazýváme projektivní prostor P (V ) projektivním bodem, pro n = 1 hovoříme o projektivní přímce, pro n = 2 o projektivní rovině. Je-li W vektorový podprostor vektorového prostoru V, je P (W ) ⊆ P (V ). Projektivní prostor P (W ) nazýváme projektivním podprostorem projektivního prostoru V. Je-li dim P (W ) = dim P (V ) − 1, nazýváme projektivní podprostor P (W ) nadrovinou v projektivním prostoru P (V ). 10
Toto slovo záměrně píšeme do uvozovek, protože za normování vektorů bývá obvykle považována jiná operace: vynásobení vektoru takovým skalárem, aby měl výsledek jednotkovou délku. Naše normování se podobá spíše normování polynomu, které se provádí, aby měl jeho vedoucí člen koeficient roven jedné. 11 Uvozovky na tomto místě slouží ke zdůraznění, že se nejedná o žádný matematicky přesný pojem nekonečna, ale pouze o účelnou abstrakci.
31
Následující věta plyne přímo z definice projektivního prostoru. Všimněme si, že prázdná množina je projektivním prostorem dimenze −1, takže věta platí i v případě, že podprostory P (W1 ) a P (W2 ) jsou disjunktní (mají prázdný průnik). Vˇ eta 7.6. Průnikem P (W1 ) ∩ P (W2 ) dvou projektivních podprostorů P (W1 ), P (W2 ) ⊆ P (V ) je projektivní podprostor P (W1 ∩ W2 ). Je-li F : V → W lineární zobrazení, pak pro každé dva lineárně závislé vektory v1 , v2 ∈ V, jsou i vektory F (v1 ), F (v2 ) ∈ W lineárně závislé. Pokud jsou navíc vektory F (v1 ) a F (v2 ) nenulové, jsou všechny čtyři vektorové podprostory Èv1 Í, Èv2 Í ⊆ V , ÈF (v1 )Í, ÈF (v2 )Í ⊆ W jednorozměrné a platí Èv1 Í = Èv2 Í a ÈF (v1 )Í = ÈF (v2 )Í. Pokud je tedy pro v ∈ V vektor F (v) nenulový, hodnota ÈF (v)Í závisí pouze na vektorovém podprostoru ÈvÍ, nikoliv na volbě jeho konkrétního prvku (v našem případě vektoru v ). Jinak řečeno, pro libovolné dva aritmetické zástupce v1 , v2 téhož bodu z P (V ) existuje číslo c ∈ R tak, že v2 = cv1 . Proto F (v2 ) = F (cv1 ) = cF (v1 ) a vektory F (v1 ) a F (v2 ) jsou aritmetickými zástupci téhož bodu z P (W ). Můžeme tedy vyslovit následující definici: Mějme nenulové lineární zobrazení F : V → W a množinu U = {ÈvÍ ∈ P (V ) | F (v) ”= 0} . Zobrazení ÈF Í : U → P (W ) definované předpisem ÈF Í(ÈvÍ) = ÈF (v)Í, nazýváme projektivním zobrazením vytvořeným lineárním zobrazením F. Příklad 7.7. Projděme si nyní uvedené definice na příkladu z předchozí podkapitoly. V tomto příkladě je hlavním vektorovým prostorem prostor R3 . Projektivní prostor P (R3 ) je množina všech jednorozměrných vektorových podprostorů v R3 , tedy množina všech přímek v R3 , procházejících počátkem. Prvky této množiny jsou tedy množiny vektorů. Například vektor (2, − 12 , 1) ∈ R3 určuje přímku È(2, − 12 , 1)Í ∈ P (R3 ), kterou ale také určuje například vektor (−4, 1, −2), protože je jeho nenulovým násobkem. Oba tyto vektory jsou aritmetickými zástupci téhož geometrického bodu z projektivního prostoru P (R3 ). Při práci s prvky projektivních prostorů často pracujeme s jejich algebraickými zástupci (tedy s vektory); máme ale přitom na paměti, že různí algebraičtí zástupci mohou určovat týž geometrický bod. Jak už jsme si všimli, pokud v R3 zvolíme afinní nadrovinu neprocházející počátkem (například nadrovinu A z (7.1)), můžeme prvky projektivního prostoru P (R3 ), které s ní nejsou rovnoběžné, reprezentovat body v této nadrovině. Podmnožinu projektivního prostoru, obsahující většinu (v pochopitelném intuitivním smyslu) jeho bodů lze tedy chápat jako afinní prostor. Chceme-li pomocí nadroviny A reprezentovat celý projektivní prostor P (R3 ), musíme k němu přidat geometrické body, které jsou s ní rovnoběžné (a mají tedy s ní prázdný průnik). O těchto bodech se v této souvislosti hovoří jako o nevlastních bodech. Podle uvedené definice je dimenze projektivního prostoru P (R3 ) rovna dvěma, jedná se tedy o projektivní rovinu. Věnujme se nyní lineárnímu zobrazení F : R3 → R3 z (7.19). Toto zobrazení je nenulové, definuje tedy projektivní zobrazení ÈF Í : U → P (R3 ), kde U je nějaká podmnožina projektivního prostoru P (R3 ). Podle definice projektivního zobrazení je toto zobrazení definováno předpisem ÈF Í(ÈvÍ) = ÈF (v)Í. Obraz ÈF Í(a) prvku a ∈ P (R3 ) tedy vypočítáme následujícím způsobem: najdeme algebraický zástupce v bodu a, vypočteme vektor F (v) a vezmeme přímku, kterou tento vektor definuje. Například pro
32
a = È(2, − 12 , 1)Í platí
100 2 2 1 1 1 F 2, − , 1 = 0 1 0 · − 2 = − 2 , 2 1 − 12 010 3
4
(7.21)
takže ÈF Í(a) = È(2, − 12 , − 12 )Í, což je nějaký jednorozměrný vektorový podprostor R3 . Pokud pro výpočet použijeme jiného algebraického zástupce bodu a, vyjde nám opět tentýž jednorozměrný vektorový podprostor. Můžeme to například vyzkoušet na vektoru (−4, 1, −2), pro který vyjde F (−4, 1, −2) = (−4, 1, 1), což je vektor, určující tutéž přímku jako vektor (2, − 12 , − 12 ). Uvedený postup nelze použít na geometrické body, jejichž algebraičtí zástupci leží v jádru lineárního zobrazení F, protože u těchto vektorů je obraz při zobrazení F nulový a nedefinuje přímku. V našem případě je jádrem zobrazení F množina È(0, 0, 1)Í, jelikož právě pro vektory v tvaru (0, 0, k) platí F (v) = 0. Podle definice projektivního zobrazení je tedy definičním oborem zobrazení ÈF Í množina U = P (R3 ) \ È(0, 0, 1)Í.
Uvažme ještě geometrické body È(x, 0, 1)Í ∈ P (R3 ), kde x ”= 0. Jsou to body, jejichž aritmetičtí zástupci ležící v rovině A leží na přímce procházející pozorovatelem a jsou rovnoběžné s projekčním plátnem. Obrazy těchto bodů při zobrazení ÈF Í jsou K 100 x L K x L ÈF Í (x, 0, 1) = 0 1 0 · 0 = 0 ,
010
1
0
(7.22)
což jsou přímky, které mají s rovinou A prázdný průnik, čili nevlastní body. Pokud si geometricky představíte, jaké hodnoty má původní zobrazení f v bodech (x, y) pro konstantní x a pro y blízké nule, pochopíte, proč se o nevlastních bodech říká, že „leží v nekonečnu“ (v budoucnu na tomto místě možná bude ilustrativní obrázek, nebo dokonce animace). Doposud jsme ve všech příkladech uváděli jako základní vektorový prostor množinu R3 . Pro práci s obecnými projektivními prostory je užitečné zavést na nich nějaký typ souřadnic. Provedeme to nejjednodušším možným způsobem, pomocí báze na podkladovém vektorovém prostoru. Libovolnou bázi v0 , v1 , . . . , vn vektorového prostoru V nazveme aritmetickou bazí projektivního prostoru P (V ). Souřadnice nenulového vektoru v ∈ V v této bázi nazveme homogenními souřadnicemi bodu ÈvÍ ∈ P (V ) vzhledem k aritmetické bázi v0 , v1 , . . . , vn . Je vidět, že homogenní souřadnice bodu projektivního prostoru vzhledem k dané aritmetické bázi nejsou určeny jednoznačně, ale závisí na volbě jeho aritmetického zástupce. Všechny se ale liší pouze nějakým nenulovým násobkem.
7.4
Příklady
V této podkapitole ilustrujeme základy projektivních prostorů na několika příkladech. Vždy budeme pracovat s projektivním prostorem P (V ) dimenze n. Případné konkrétnější zadání uvedeme vždy u příkladu, kterého se bude týkat. Ve většině příkladů bude V = R3 , a A nadrovina daná rovnicí (7.1). V R3 budeme uvažovat kanonickou vektorovou bázi, nebude tedy rozdíl mezi souřadnicemi vektorů a jejich složkami. Tuto bázi budeme také používat jako geometrickou bázi v P (R3 ). V nadrovině A budeme uvažovat afinní bázi ((1, 0, 0), (0, 1, 0), (0, 0, 1)) (viz Větu 7.1 a příklad před ní) a souřadnice prvků nadroviny A budeme uvažovat vzhledem k ní (to znamená, že souřadnice bodu (x, y, 1) ∈ A budou [x, y]). 33
Příklad 7.8. Přímka v projektivním prostoru P (V ) je podle definice dána rovinou ve vektorovém prostoru V, procházející nulovým vektorem. Tato rovina je tedy určena dvěma lineárně nezávislými vektory v1 , v2 ∈ V a její parametrická rovnice je
v = t1 v1 + t2 v2 .
(7.23)
V případě V = R3 a Èv1 Í ∩ A ”= ∅ a Èv2 Í ∩ A ”= ∅, můžeme vektory v1 a v2 normovat tak, aby ležely v rovině A (tedy aby měly třetí složku rovnu jedné). Rovnice průniku naší roviny s rovinou A pak bude
v = tv1 + (1 − t)v2 .
(7.24)
Příklad 7.9. Zkusme pomocí předchozího příkladu najít projektivní přímku v P (R3 ), která prochází zadaným nevlastním bodem. Položme a = È(0, 1, 1)Í a b = È(1, 2, 0)Í. Bod a protíná (jako přímka) nadrovinu A v bodě o souřadnicích [0, 1], bod b ji ale neprotíná a je tedy nevlastní. Rovnice vektorového podprostoru určeného těmito dvěma body je 0 1 v = t1 1 + t2 2 . (7.25) 1 0 Tato rovnice tedy určuje homogenní souřadnice všech prvků hledané projektivní přímky. Spočtěme ještě množinu vlastních bodů této přímky v rovině A. Tyto body mají třetí složku rovnu jedné, z rovnice (7.25) dostaneme podmínku
1 · t1 + 0 · t2 = 1,
(7.26)
což znamená t1 = 1 a rovnice hledané množiny vlastních bodů je C D
0 x= +t 1
A B
1 2
(7.27)
.
Tato množina je tedy afinní přímkou procházející bodem a a se směrovým vektorem určeným bodem b. Uvedený postup můžeme v počítačové grafice využít například v případě, že chceme zjistit dráhu paprsku světla, jehož zdroj je umístěn v nekonečnu. Příklad 7.10. Zkuste ověřit, že nevlastní body afinního prostoru A ⊂ R3 tvoří projektivní přímku. Tato přímka se nazývá nevlastní přímka. Příklad 7.11. Ukažte, že v projektivním prostoru dimenze 2 mají libovolné dvě různé projektivní přímky jednoprvkový průnik. Tím se projektivní prostory liší od prostorů afinních, v nichž neshodné rovnoběžné přímky průnik nemají. Zkusme tuto skutečnost ověřit na příkladě v projektivním prostoru P (R3 ). Položme a = È(0, 1, 1)Í, b = È(1, 2, 0)Í a c = È(1, 2, 1)Í a uvažme dvojici přímek určených body a, b a c, b. Z předchozího víme, že tyto dvě projektivní přímky určují afinní přímky v prostoru A o rovnicích
x= x=
C D
0 +t 1
A B
1 2
,
(7.28)
1 +t 2
1 2
.
(7.29)
C D
A B
Vidíme, že se jedná o rovnoběžky, které v prostoru A nemají průsečík. Abychom zjistili průnik projektivních přímek, napišme si a porovnejme jejich rovnice:
0 1 1 1 t1 1 + t2 2 = t3 2 + t4 2 . 1 0 1 0 34
(7.30)
Vyřešením vzniklé soustavy získáme
t1 = 0, t3 = 0, t2 = t4 ,
(7.31)
což znamená, že uvedené projektivní přímky se protínají v nevlastním bodě È(1, 2, 0)Í. Příklad 7.12. Projektivní zobrazení se v počítačové grafice používají k vytvoření perspektivních efektů. Uvažme lineární zobrazení F: R3 → R3 které má v kanonické bázi matici 001 M = 0 1 0. (7.32) 100 Pro x ”= 0 platí
K 001 x L K 1 L K ÈF Í (x, y, 1) = 0 1 0 · y = y =
1
100
x
1 x y x
1
L .
(7.33)
Zkuste si nyní představit, jak zobrazení ÈF Í transformuje body i složitější útvary v rovině A — například čtverec s vrcholy [1, 0], [1, 1], [2, 1], [2, 0], nebo [2, 1], [2, 0], [3, 1], [3, 0]. Uvědomte si také, kam toto zobrazení zobrazuje nevlastní body a naopak, které body zobrazuje na body nevlastní. Příklad 7.13. Projektivní zobrazení používaná v praxi nemívají tak jednoduché matice, jak jsme zatím uváděli zde. Pokud například matici (7.17) upravíme tak, aby vzdálenost projekčního plátna od pozorovatele nebyla rovna jedné, ale nějakému číslu d, dostaneme matici 1 0 0 M = 0 1 0. (7.34) 1 0 d 0 Grafický software ovšem obvykle nepoužívá přímo matici M , ale její rozklad na součin dvou matic, M = M2 · M1 , z nichž každá realizuje jednodušší projektivní transformaci:
1 0 0 100 1 0 0 0 1 0 = 0 0 d·0 0 1 001 0 d1 0 0 d1 0
(7.35)
Matice M1 realizuje perspektivní skosení v prostoru A, podobně jako matice z předchozího příkladu. Projektivní zobrazení, které definuje, zobrazuje lichoběžníky určené úhlem pohledu a dvěma přímkami rovnoběžnými s osou x na obdélník (vyzkoušejte si to například na lichoběžníku s vrcholy [1, d], [2, 2d], [−2, −2d], [−1, −d]). Po zobrazení bodů zobrazované scény maticí M1 se jednoduše provádí tzv. clipping, neboli omezení scény na body, které leží v zorném úhlu a nejsou k pozorovateli příliš blízko, ani od něj příliš daleko. Matice M2 provádí již jen jednoduché kolmé promítnutí prostoru A na projekční plátno (v praxi by to bylo kolmé promítnutí trojrozměrného prostoru na rovinu obrazovky). Jak je vidět z tvaru matice, zobrazení, které realizuje, je afinní.
35
Reference [1] Bican L., Lineární algebra a geometrie. Praha, Academia, 2004. [2] Horák P., Janyška J., Analytická geometrie. Masarykova univerzita, 2002. [3] Riddle D.R., Analytic Geometry. Brooks Cole, 1998. [4] Žára J., Felkel P., Beneš B., Sochor J., Moderní počítačová grafika, 2. vydání. Computer Press, 2005.
36