UPG5 och UPG8 Miniprojekt 1: 2D datorgrafik I den här uppgiften studerar vi hur man kan använda sig av linjära avbildningar för att modifiera bilder i två dimensioner Mycket är repetition av vissa grundbegrepp ur linjära algebran, men avsnitten om translation är antagligen nya för de flesta studenter 1 Linjära avbildningar (linear transformations) Minns att en avbildning (eller funktion) F kallas linjär om den uppfyller F (αx + βy) = αf (x) + βf (y) för alla x och y i avbildningens definitionsmängd (ett vektorrum eller ett linjärt rum, vilket är synonymer) och alla skalärer (tal) α och β Elementen i vektorrummet kan vara vanliga tal, men de kan också vara vektorer i R n, funktioner, eller andra objekt Fundera: Är den funktion f(x) = 2x + 3 linjär? Hur ser dess graf ut? 2 Grafiska transformationer 21 Kontraktion/expansion (contraction/dilation) Den matris som svarar mot kontraktionsavbildningen kan skrivas a 0, 0 b med 0 < a < 1 och 0 < b < 1 Notera hur determinanten ger areaförändringen Om värdet på någon av parametrarna är > 1 talar vi istället om expansion i motsvarande riktning Vad händer om exempelvis a < 0 eller om b = 0? Vad har avbildningen för egenvärden och egenvektorer för olika kombinationer av a och b? 22 Skjuvning (shearing): Den matris som svarar mot skjuvningsavbildningen kan skrivas 1 a, 0 1 Linköpings universitet, ITN, Berkant Savas 1
om det handlar om skjuvning parallellt med x-axeln Hur ser matrisen ut som svarar mot skjuvning parallellt med y-axeln? Vad beskriver determinanten av matrisen? Vilka egenvektorer finns och varför? Vad blir inversen av matrisen? 23 Rotation (rotation): Den matris som svarar mot rotationsavbildningen kan skrivas cos v sin v R = sin v cos v Åt vilket håll vrider den en punkt? Varför? Vad blir R 2? Vad är R? Vad är det(r)? Hur inser man att egenvektorer endast finns för vissa speciella v (vilka)? Hur inser man enkelt vad inversen blir? Vad gäller för nollrummet? Värderummet är hela R 2, hur inser man det? 24 Projektion (projection): Den matris som svarar mot projektionsavbildningen kan skrivas cos P = 2 v sin v cos v sin v cos v sin 2 v Vad är här v? Vad blir P 2? Vad blir P 100? Vad är det(p )? Hur ser man egenvärden och egenvektorer direkt här? Vad kan sägas om matrisinversen? Nollrum? Värderum? 25 Spegling (reflection): Den matris som svarar mot speglingsavbildningen kan skrivas cos 2v sin 2v S = sin 2v cos 2v Vad är här v? Vad blir S 2? Vad är det(s)? Hur ser man egenvärden och egenvektorer direkt här? Hur inser man att S 1 = S? Nollrum? Värderum? 26 Translation (translation) Om vi skall ha full kontroll på ett objekt måste vi även kunna flytta det utan att ändra dess orientering eller form Den rörelsen kallas translation, och hanteras matematiskt med hjälp av sk affina avbildningar (vilka bara är nästan linjära) Ett standardsätt att göra det möjligt att hantera även dessa affina avbildningar inom ramen för den linjära teorin är att utöka objekten med ytterligare en komponent Exempelvis kan den räta linjen y = kx+m hanteras inom ramen för linjär teori genom att man utökar x till kolonnvektorn (x 1) T och skriver ekvationen för den räta linjen enligt x y = (k m) 1 Linköpings universitet, ITN, Berkant Savas 2
Mer allmänt, om vi har en punkt (x, y) som vi önskar avbilda till en ny punkt (x, y ) enligt x = x + a, y = y + b, låter vi den ursprungliga punkten representeras av (x y 1) T (som inte är en vektor!) och avbildningen till de primmade koordinaterna blir x 1 0 a x y = 0 1 b y 1 1 Tekniken att på detta sätt utöka med en etta kallas för homogena koordinater Notera att (x y 1) T inte är en vektor, då vi inte kan addera eller multiplicera med en konstant, och ändå vara kvar i samma linjära rum Matriserna ovan för kontraktion/expansion, skjuvning, rotation, projektion samt spegling blir nu: a 0 0 kontraktion/expansion 0 b 0 1 a 0 skjuvning 0 1 0 cos v sin v 0 rotation sin v cos v 0 cos 2 v sin v cos v 0 projektion sin v cos v sin 2 v 0 cos 2v sin 2v 0 spegling sin 2v cos 2v 0 Aktsamhet måste iaktas avseende tolkningen, då det tredimensionella rum som matriserna verkar på inte längre är ett linjärt rum (vektorrum) 27 Sammansatta avbildningar En orsak till att man önskar bekriva transformationerna som linjära avbildningar är att man ofta är intresserad av sammansatta avbildningar Det kan tex handla om att först vrida och sedan translatera ett objekt Avbildningsmatrisen för en sådan sammansatt operation blir ingenting annat än produkten av motsvarande två matriser, vilken enkelt beräknas en gång för alla Ordningen på matriserna är här högst väsentlig Linköpings universitet, ITN, Berkant Savas 3
28 Uppgift Undervisningen i matematiska kurser som linjär algebra är ofta abstrakta och teoretiska Studenterna blir väldigt duktiga på att räkna med matriser, att bestämma egenvärden och egenvektorer, lösa ekvationssystem, beräkna determinanter, mm, mm, men de får aldrig chansen att se hur många av dessa begrepp kan tolkas geometriskt Er uppgift är nu att övertyga en sådan student om nyttan av att tolka begrepp geometriskt och hur detta lägger grunden för tillämpningar inom datorgrafik Dessvärre orkar dessa studenter varken lyssna eller läsa speciellt mycket, och därför tvingas ni att vara mycket kortfattade Er skriftliga lärotext skall innehålla åtminstone tre av avbildningstyperna kontraktion expansion, skjuvning, rotation, projektion, spegling och translation Lärotexten skall också rymma geometrisk tolkning av begreppen: 1 determinant; 2 invers; 3 nollrum; 4 värderum; 5 egenvektor; 6 egenvärde; 7 sammansatt avbildning (klargör i vilken ordning matrismultiplikationen skall ske, dvs vilken matris som skall stå först och vilken som skall stå sist) Alla begrepp behöver inte exemplifieras för varje avbildningstyp, utan det räcker att ta upp ett begrepp med en av avbildningstyperna Använd gärna de öppna frågor som finns i texten ovan, men ha ett fritt förhållningssätt till dem OBS: Alla ovannämnda begreppen MÅSTE vara med! OBS: Alla ovannämnda begreppen MÅSTE beskrivas på ett korrekt sätt! Se till att ni reder ut eventuella oklarheter med hjälp av litteraturen och oss lärare Förslag på arbetsgång: Rita ett lämpligt objekt på rutat papper Objektet kommer ni att transformera med olika avbildningar Ett exempel är bokstaven F som ges av 0 2 2 7 7 2 2 8 8 0 0 0 0 8 8 10 10 14 14 16 16 0 Använd helst inte denna bokstav (eller någon annan) utan skapa något roligt (och enkelt) Skriv en funktion som givet en matris av det slag som anges ovan drar räta linjer mellan dess koordinater Utöka koordinatmatrisen så att det även blir möjligt att translatera objektet Bygg ut funktionen ovan så den även fungerar för den nya typen av koordinatmatris Pröva, lek, tänk, lek, pröva och tänk igen! Linköpings universitet, ITN, Berkant Savas 4
29 Redovisning Ni skall redovisa arbetet på max två A4-sidor på engelska, samt muntligt på svenska eller engelska (valfritt) enligt anvisningar i kursinformationen och mer specificerade vid föreläsningarna samt i lathunden på kurshemsidan Konstnärlighet i bilderna är vare sig nödvändigt eller tillräckligt, men en fördel När ni gör presentationen skall ni föreställa er att ni står inför studenterna som ni har skrivit för, och att dessa nog har läst er rapport, men kanske inte helt förstått allt Datum för inlämningar av minirapport och opposition enligt undervisningsplanen Oppositionen kan skrivas på antingen svenska eller engelska, men genomförs muntligt på svenska Ni bedömer rapport och presentation som fackgranskare, dvs ni avgör från er expertkunskap vad som är lämpligt för de stackars studenter som läst ovannämnda egendomliga kurs i linjär algebra Litteraturlista (ej referenslista) För att klara den engelska nomenklaturen uppmanas ni uppsöka biblioteket och låna godtycklig lärobok med titeln Linear algebra (finns alltid åtminstone referensexemplar) På kurshemsidan finns även en engelsk-svensk ordlista för högskolematematik Linjär algebra, TNA002, G Baravdish, kompendium utgivet av Linköpings universitet, ITN, valfri utgåva MATLAB-beräkningar inom teknik och naturvetenskap, tredje utgåvan, P Jönsson, Studentlitteratur, Lund 2010 3D Computer Graphics, 3rd ed, A Watt, Addison-Wesley, 1999 [Kurslitteratur i kursen Datorgrafik Kapitel 1 innehåller mycket linjär algebra som den nödvändiga grunden för grafiktillämpningar] Linköpings universitet, ITN, Berkant Savas 5