Gebruik matrices • In Graphics worden lineaire transformaties gebruikt • Deze lineaire transformaties gerepresenteerd in matrixvorm • Matrixvermenigvuldiging voor schalen, rotaties 1/55 translaties en Februari, 2015 Lineaire transformatie in 2D Definitie 2.1.1: Een afbeelding T van R2 naar R2 heet een lineaire transformatie als er een 2 × 2 matrix A bestaat zo dat T (p) = Ap voor alle p in R2. Matrix A beeldt vector p af op een nieuwe vector p′ = Ap. 2/55 ′ x y′ =A x y Februari, 2015 Lineaire transformatie in 2D p′ = Ap ′ x y′ = a11 a12 a21 a22 x y = a11x + a12y a21x + a22y x′ = a11x + a12y y ′ = a21x + a22y 3/55 Februari, 2015 Voorbeeld lineaire transformatie x′ = 2x + 3y y ′ = x + 4y Deze afbeelding wordt gerepresenteerd door 2 × 2 matrix: 4/55 2 3 1 4 Februari, 2015 Opgave 6 Gegeven de volgende matrix: 0 1 . −1 0 1. Waarworden de volgende vectoren in overgevoerd? 1 0 1 , en 0 2 1 2. Wat doet deze transformatie met het punt (x, y)? 3. Dezelfde vraag voor matrix 5/55 1 0 . 0 1 Februari, 2015 2D transformaties In Graphics zijn meeste transformaties lineair: x′ = a11x + a12y y ′ = a21x + a22y ′ x y′ = a11 a12 a21 a22 x y = a11x + a12y a21x + a22y Deze lineaire transformaties gebruikt voor schaling, shear en rotatie 6/55 Februari, 2015 Schaling in matrixvorm Schaling x′ = sxx, y ′ = sy y Schaling in matrixvorm: ′ x sx 0 x sx x = = ′ y 0 sy y sy y Schaling met schalingsmatrix S: p′ = Sp 7/55 Februari, 2015 Uniforme schaling in x en y 8/55 sx 0 0 sy = 0.5 0 0 0.5 Februari, 2015 Niet-uniforme schaling in x en y 9/55 sx 0 0 sy = 0.5 0 0 1.5 Februari, 2015 Shear in matrixvorm Horizontale shear x′ = x + sy, y′ = y Horizontale shear in matrixvorm: ′ x 1 s x x + sy = = ′ y 0 1 y y Shear met matrix S: p′ = Sp 10/55 Februari, 2015 Horizontale shear 1 s 1 1 = 0 1 0 1 Verticale lijnen gaan over in lijnen met hoek 45◦ 11/55 Februari, 2015 Eigenwaarden bepalen zonder rekenen Gegeven: horizontale shear 1 s 0 1 Gevraagd: wat zijn eigenwaarden en eigenvectoren van deze afbeelding? 1 s x x =λ 0 1 y y 12/55 Februari, 2015 Eigenwaarden en eigenvectoren shear • eigenvector 13/55 1 0 1 s 0 1 met eigenwaarde λ = 1 Februari, 2015 Eigenwaarden bepalen met rekenen 1 s 0 1 Karakteristieke vergelijking: det 0 s 0 0 14/55 1−λ s 0 1−λ x y = 0 0 = (1 − λ)2 = 0 ⇒ λ = 1 , dus eigenvector is 1 0 Februari, 2015 Shear in matrixvorm Verticale shear x′ = x, y ′ = sx + y Verticale shear in matrixvorm: ′ x 1 0 x x = = ′ y s 1 y sx + y Shear met matrix S: p′ = Sp 15/55 Februari, 2015 Verticale shear 1 0 1 0 = s 1 1 1 Horizontale lijnen gaan over in lijnen met hoek 45◦ 16/55 Februari, 2015 Rotatie in 2D xa Gegeven: vector a = ya xb Gevraagd: vector b = na rotatie over hoek φ yb 17/55 Februari, 2015 Rotatie in 2D a= b= xa ya xb yb = = r cos α r sin α r cos(α + φ) r sin(α + φ) xb = r cos(α + φ) = r cos α cos φ − r sin α sin φ yb = r sin(α + φ) = r sin α cos φ + r cos α sin φ xb = xa cos φ − ya sin φ yb = ya cos φ + xa sin φ 18/55 Februari, 2015 Rotatie in matrixvorm Rotatie xb = xa cos φ − ya sin φ yb = xa sin φ + ya cos φ Rotatie in matrixvorm: ′ x cos φ − sin φ x = ′ y sin φ cos φ y Rotatie met matrix R: p′ = Rp 19/55 Februari, 2015 Rekenvoorbeeld 2D rotatie Rotatie over 45◦: cos(π/4) − sin(π/4) 0.707 −0.707 R= = sin(π/4) cos(π/4) 0.707 0.707 1 Gegeven: vector p = 0 Gevraagd: beeldvector p′ 0.707 −0.707 1 0.707 ′ p = Rp = = 0.707 0.707 0 0.707 ⇒ tegen klok in 20/55 Februari, 2015 Rotatie tegen klok in 21/55 cos(π/4) − sin(π/4) sin(π/4) cos(π/4) = 0.707 −0.707 0.707 0.707 Februari, 2015 Rotatie met klok mee Rotatie met klok mee over hoek −π/6 cos(−π/6) − sin(−π/6) 0.866 0.5 = sin(−π/6) cos(−π/6) −0.5 0.866 22/55 Februari, 2015 Definities: Orthonormaal en orthogonaal • Een stelsel vectoren x1, x2, . . . , xn zijn orthogonaal als voor elk tweetal vectoren uit dat stelsel geldt dat hun inproduct nul is. • Een stelsel vectoren x1, x2, . . . , xn zijn orthonormaal als voor elk tweetal vectoren uit dat stelsel geldt dat hun inproduct nul is en als elke vector lengte 1 heeft. • Een vierkante matrix A heet orthogonaal als AT = A−1 Stelling: De determinant van orthogonale matrix is +1 of -1. 23/55 Februari, 2015 Rotatiematrix is orthogonaal met det = 1 R= cos θ − sin θ sin θ cos θ 1. Kolommen van matrix zijn orthogonaal cos φ(− sin φ) + sin φ cos φ = 0 2. Elke kolom heeft lengte 1: cos2 φ + sin2 φ = 1 en (− sin φ)2 + cos2 φ = 1 ⇒ rotatiematrix is orthogonale matrix 24/55 Februari, 2015 Eigenwaarden van 2D rotatiematrices Bereken eigenwaarden van R. Voor welke waarden van θ zijn er eigenwaarden? cos θ − sin θ R= sin θ cos θ Karakteristieke vergelijking: cos θ − λ − sin θ = λ2 − 2λ cos θ + 1 = 0 det sin θ cos θ − λ Er zijn wortels als ∆ = b2 − 4ac = (2 cos θ)2 − 4 > 0 25/55 Februari, 2015 Eigenwaarden van 2D rotatiematrices wortels als (2 cos θ)2 − 4 > 0 ⇒ cos2 θ ≥ 1 ⇒ cos θ = ±1 Dus alleen eigenwaarden en eigenvectoren in twee gevallen: 1. θ = 0, 2. θ = π, cos θ − sin θ sin θ cos θ cos θ − sin θ sin θ cos θ = = 1 0 0 1 , λ = 1, Ix = x −1 0 0 −1 , λ = −1, −Ix = −x In andere gevallen complexe eigenwaarden 26/55 Februari, 2015 Opgave 7 1. Is de volgende matrix orthogonaal? A = 2. Wat zijn de beeldvectoren van 1 0 en cos θ sin θ sin θ − cos θ 0 1 voor θ = π/6? 3. Is A een rotatie voor θ = π/6? 4. Bereken de eigenwaarden en eigenvectoren om te bepalen wat deze transformatie doet 27/55 Februari, 2015 Spiegeling in matrixvorm Spiegeling om x-as x′ = x, y ′ = −y Spiegeling om x-as in matrixvorm: ′ x 1 0 x x = = ′ y 0 −1 y −y 28/55 Februari, 2015 Spiegeling om x-as 29/55 1 0 0 −1 Februari, 2015 Spiegeling in matrixvorm Spiegeling om y-as x′ = −x, y′ = y Spiegeling om y-as in matrixvorm: ′ x −1 0 x −x = = ′ y 0 1 y y 30/55 Februari, 2015 Spiegeling om y-as 31/55 −1 0 0 1 Februari, 2015 Spiegeling om lijn x = y Spiegeling om lijn x = y x′ = y y′ = x Spiegeling om lijn x = y in matrixvorm: ′ x 0 1 x y = = ′ y 1 0 y x 32/55 Februari, 2015 Eigenwaarden van 2D spiegelingsmatrix Bereken eigenwaarden van S. S= cos θ sin θ sin θ − cos θ Karakteristieke vergelijking: det cos θ − λ sin θ sin θ − cos θ − λ = λ2 − 1 = (λ − 1)(λ + 1) = 0 Eigenwaarden λ1 = 1 en λ2 = −1 33/55 Februari, 2015 Eigenwaarden van 2D spiegelingsmatrix 1. λ1 = 1, cos θ − 1 sin θ sin θ − cos θ − 1 x y = 0 0 ⇒ eigenvector op lijn y = tan 2θ . x ⇒ symmetrie-as 2. λ2 = −1, cos θ + 1 sin θ sin θ − cos θ + 1 = x y = 0 0 eigenvector op lijn x = − tan θ2 . y ⇒ loodrecht op symmetrie-as 34/55 Februari, 2015 Samenstelling van 2D transformaties In Graphics vaak opeenvolgende transformaties op object 1. Eerst schaling S: p2 = Sp1 2. Dan rotatie R: p3 = Rp2 Andere notatie: p3 = R(Sp1) = RSp1 (eerst S en dan R) 35/55 Februari, 2015 Product van twee matrices −1 0 2 1 Gegeven matrix A = en matrix B = . 1 1 1 1 −1 0 2 1 −2 −1 Het product AB is = 1 1 1 1 3 2 Wat is BA? Het product BA is 2 1 1 1 −1 0 1 1 = −1 1 0 1 AB 6= BA, matrixvermenigvuldiging is niet commutatief 36/55 Februari, 2015 Uitvoeren van productmatrix 0.707 −0.707 0.707 0.707 37/55 1.0 0 0 0.5 = 0.707 −0.353 0.707 0.353 Februari, 2015 Volgorde transformaties maakt uit 38/55 Februari, 2015 Opgave 8 1. Wat is 1.0 0 0 0.5 0.7 −0.7 ? 0.7 0.7 2. Wat is de samengestelde matrix van eerst schaling(2, 3), dan rotatie(45◦) en dan shear-x(0.2)? 3. Wat is de samengestelde matrix van eerst shear-x(0.2), dan schaling(2, 3) en dan rotatie(45◦)? 39/55 Februari, 2015 Antwoord opgave 8 1. 1.0 0 0 0.5 0.7 −0.7 0.7 0.7 = 0.7 −0.7 0.35 0.35 2. schaling(2, 3), dan rotatie(45◦) dan shear-x(0.2)? 1 0 0.2 1 0.7 0.7 −0.7 0.7 3. shear-x(0.2), 40/55 0.7 0.7 −0.7 0.7 2 0 dan 0 3 1 0 2 0 0 3 = 1 0 0.2 1 1.4 1.4 schaling(2, 3) 0.2 1 = 1.4 1.4 −2.1 2.1 −2.1 2.1 dan 1 0 0.2 1 = 1.68 1.4 −1.68 2.1 rotatie(45◦)? = 1.4 1.4 −1.82 2.38 Februari, 2015 Opgave 9 1. Gegeven de volgende afbeelding: ′ x = ′ y = y x Welke matrix hoort bij deze afbeelding? Wat is deze afbeelding meetkundig gezien? 2. Gegeven de volgende afbeelding: x′ = ′ y = x −y Welke matrix hoort bij deze afbeelding? Wat is deze afbeelding meetkundig gezien? 3. Welke matrix correspondeert met afbeelding 1 gevolgd door afbeelding 2? 4. En andersom? 5. Wat doen de afbeeldingen in 3 en 4? 41/55 Februari, 2015 2D transformaties in matrixvorm sx 0 x sx x = 0 sy y sy y x + sy 1 s x 2D x-shear: 0 1 = y y 1 0 x x 2D y-shear: s 1 = y y + sx x cos φ − y sin φ x cos φ − sin φ = 2D rotatie: x sin φ + y cos φ y sin φ cos φ 2D schaling: Een translatie is een veel voorkomende transformatie in Graphics Hoe moet dat in matrixvorm? 42/55 Februari, 2015 Translatie Voor translatie hebben we vector-optelling: ′ x y′ = x y + dx dy Hoe noteren we dat in matrixvorm? ′ x 1 0 x dx = + ′ y 0 1 y dy Met homogene co¨ ordinaten matrixvermenigvuldiging 43/55 Februari, 2015 Homogene co¨ ordinaten Voeg aan elk 2D punt z kolom toe: 1 0 x′ ′ y = 0 1 0 0 1 = 1 toe en voeg aan matrix rij en Translatiematrix T: p′ = Tp 44/55 x + dx x dx dy y = y + dy 1 1 1 Februari, 2015 Rekenvoorbeeld 2D translatie Translatie met d = Waar gaat p = 4 5 3 −4 in over? 1 0 3 4 7 p′ = Tp = 0 1 −4 5 = 1 0 0 1 1 1 45/55 Februari, 2015 2D transformaties in homogene vorm 2D 2D 2D 2D 46/55 sx 0 0 x sx x schaling: 0 sy 0 y = sy y 0 0 1 1 1 1 s 0 x x + sy x-shear: 0 1 0 y = y 0 0 1 1 1 cos φ − sin φ 0 x x cos φ − y sin φ rotatie: sin φ cos φ 0 y = x sin φ + y cos φ 0 0 1 1 1 1 0 dx x x + dx translatie: 0 1 dy y = y + dy 0 0 1 1 1 Februari, 2015 Voorbeeld Wat is matrix voor rotatie over 90◦ om het punt (2, 1) (tegen de klok in)? 1. transleer zo dat rotatiecentrum op de oorsprong terecht komt 2. roteer om de oorsprong 3. doe de inverse translatie De gevraagde transformatie is: T (2, 1)R(90◦)T (−2, −1) 1 0 2 0 −1 0 1 0 −2 0 −1 3 0 1 1 1 0 0 0 1 −1 = 1 0 −1 0 0 1 0 0 1 0 0 1 0 0 1 Waar gaat het punt (3, 2) in over door deze transformatie? 47/55 Februari, 2015 Opgave 10 1. Wat is de matrix voor een spiegeling in de lijn y = −x? 2. Wat is de matrix voor een spiegeling in de lijn y = −x + 5? 48/55 Februari, 2015 2D window transformatie Voer rechthoek (a, b)(A, B) over in (c, d)(C, D) 49/55 Februari, 2015 rechthoek (a, b)(A, B) → (c, d)(C, D) 1. Transleer punt (a, b) naar oorsprong 2. Schaal rechthoek naar juiste grootte 3. Transleer oorsprong naar (c, d) transformatie = C−c D−d , B−b ) transleer (−a, −b) transleer (c, d) schaal ( A−a 50/55 Februari, 2015 rechthoek (a, b)(A, B) → (c, d)(C, D) C−c D−d , B−b ) transleer (−a, −b) = transleer (c, d) schaal ( A−a 1 0 c 0 1 d 0 0 1 51/55 C−c A−a 0 0 C−c A−a 0 0 0 D−d B−b 0 0 D−d B−b 0 0 1 0 −a 0 0 1 −b = 0 0 1 1 cA−Ca A−a dB−Db B−b 1 Februari, 2015 Inverse matrix Definitie: De inverse matrix A−1 van een matrix A is de matrix waarvoor geldt: AA−1 = I Voorbeeld: −1 −2 1 1 2 = omdat 1.5 −0.5 3 4 1 2 −2 1 1 0 = 3 4 1.5 −0.5 0 1 52/55 Februari, 2015 Inverse van transformaties sx 0 0 x sx x 1. 2D schaling: 0 sy 0 y = sy y 0 0 1 1 1 1/sx 0 0 x 1/sx x Inverse: 0 1/sy 0 y = 1/sy y 0 0 1 1 1 x + sy 1 s 0 x y 2. 2D x-shear: 0 1 0 y = 1 0 0 1 1 x − sy 1 −s 0 x y 1 0 y = Inverse: 0 1 0 0 1 1 53/55 Februari, 2015 x cos φ − y sin φ x cos φ − sin φ 0 cos φ 0 y = x sin φ + y cos φ 3. 2D rotatie: sin φ 1 0 0 1 1 cos φ sin φ 0 x x cos φ + y sin φ Inverse: − sin φ cos φ 0 y = −x sin φ + y cos φ 0 0 1 1 1 x + dx x 1 0 dx 4. 2D translatie: 0 1 dy y = y + dy 1 0 0 1 1 x − dx x 1 0 −dx Inverse: 0 1 −dy y = y − dy 1 1 0 0 1 54/55 Februari, 2015 Opgave 11 1. Waarom worden in Graphics bij transformaties homogene co¨ordinaten gebruikt? 2. Welke transformaties zijn er nodig om een rechthoek met hoekpunten (1, 1) (linksonder) en (3, 3) (rechtsboven) om te zetten naar een rechthoek met hoekpunten (0, 0) (linksonder) en (4, 4) (rechtsboven)? 3. Geef de matrix T die deze transformatie representeert. 4. Wat is de inverse matrix van T ? 5. Waar komt het punt (2, 2) terecht als we de inverse van T hierop uitvoeren? 55/55 Februari, 2015
© Copyright 2024 ExpyDoc