4 Transformaties

In de inleiding (1) is het oplossen van vergelijkingen de introductie geweest van matrices en vectoren. Als conclusie was er dat de vergelijking Ax = b wordt opgelost door links en rechts te vermenigvuldigen met de inverse x = A1b. Tot nu toe weet je nog niet hoe A1 berekend kan worden. We stellen dit nog steeds uit. In deze sectie houden we ons bezig met waar het ons werkelijk om gaat: het manipuleren van beelden. De wiskundige term voor dit soort manipulaties is transformaties. We beperken ons tot lineaire transformaties. Dat wil zeggen rechte lijnen blijven na manipulatie ook recht.

Een transformatie is dus een verandering ofwel een afbeelding. In de lineaire algebra verstaan we daaronder de verandering van vorm en of positie van punten, lijnen en objecten opgebouwd uit lijnen en punten. De basis-transformaties zijn:

a)
translatie(=verschuiving)
b)
rotatie
c)
spiegeling
d)
schalen(verkleinen en vergroten)

De bewerkingen a,b en c veranderen de grootte van een object niet, d natuurlijk wel. Er wordt gebruik gemaakt van vectoren en matrices om transformaties te definiëren.

4.1 Translatie (=verschuiving)


Figuur 1: Translatie over vector v

SVG-Viewer needed.


Bij een translatie blijft de vorm intact er wordt alleen een andere positie ingenomen. In de figuur hiernaast is de vierhoek CDEF verschoven naar CDEF. De algebraïsche bewerking die hiervoor wordt uitgevoerd is dat we de coördinaten van de punten C,D,E, en F veranderen naar die van C,D,E, en F. Dit doen we voor b.v. punt C door de translatievector v op te tellen bij de vector OC het resultaat is de vector OC die wijst naar het punt C.

OC+v = 7 6 + 2 2 = 5 4 = OC

De afbeelding moeten we dan voor alle punten herhalen. Vervolgens kunnen de lijnen worden getekend.

Opgaven:

15.
Transleer de vijfhoek ABCDE met A = (0, 0),B = (100, 0),C = (100, 100),D = (50, 50),E = (0, 100) met de vector 100 200
16.
Teken in geogebra de vijfhoek V = ABCDE met A = (2, 2),B = (7, 6),C = (1, 6),D = (6, 2)enE = (4, 8) . Wat worden de coördinaten van vijfhoek V die ontstaat door V over de vector 4 0 te transleren?
Hoe krijg je uitgaande van vijfhoek V de oorspronkelijke vijfhoek V weer terug?
17.
Maak zelf nog een mooie figuur in geogebra en transleer die over een vector naar keuze.
18.
Maak in geogebra een schuifknop die de translatie vector met een bepaalde factor vergroot.
19.
(Als het programmeren nog niet is gestart voorlopig overslaan) Aangezien de functie drawPolyLine een array van x waarden en een van y-waarden nodig heeft is het zinvol een polygoon(=veelhoek) in een matrix te stoppen. Iedere hoekpunt wordt dan een kolom in de matrix (zie het voorbeeld in de GraphicsApplet). Hoewel het optellen van matrices alleen gedefinieerd is voor matrices van gelijke dimensie is het toch nuttig om alle hoekpunten met één instructie te kunnen verschuiven. Maak daarom in MatrixLA de memberfunctie public MatrixLA addToCols(MatrixLA punt) waarin punt een nx1 matrix moet zijn. Met je nieuwe functie voer je de translatie uit die in de vorige opgave staat.

4.2 Rotatie (=draaiing)


Figuur 2: Rotatie over π3

SVG-Viewer needed.



Figuur 3: Eenheidscirkel a

SVG-Viewer needed.


Figuur 4: Eenheidscirkel b

SVG-Viewer needed.

Bij een rotatie wordt een object gedraaid om een middelpunt over een hoek. In de figuur 2 is de vierhoek CDEF gedraaid over een hoek α om punt B naar CDEF. Voor we een rotatie om een willekeurig punt behandelen kijken we eerst naar een rotatie om de oorsprong.

In de figuur 3 is de eenheidscirkel (straal=1) getekend. Voor een punt op de eenheidscirkel kun je de coördinaten van een punt als volgt krijgen de x- coördinaat wordt x = cos(α) en de y- coördinaat wordt y = sin(α), waarin α de hoek (in radialen) is die het lijnstuk OA maakt met de positieve x-as. Die waarden zijn dan gelijk aan de waarden op de assen bij een loodrechte projectie op die assen. Dus A = (cos(α), sin(α))
NB: 1 graad = π/180 radialen

Opgaven:

20.
Toon dit voor de rechthoekige driehoek AOD aan met behulp van de definities voor de cosinus (cas) en de sinus (sos).

Als we punt A nu over een hoek β verder draaien naar punt E (zie figuur 4) dan worden de coördinaten van E gelijk aan
E = (cos(α + β), sin(α + β)) in de volgende opgave ga je aantonen dat dit gelijk is aan E = (cos(β)xA sin(β)yA, sin(β)xA + cos(β)yA)

Opgaven:

21.
Alleen voor leerlingen met wiskunde B in het pakket. Gebruik de goniometrische formules
cos(α + β) = cos(α) cos(β) sin(α) sin(β)

en

sin(α + β) = sin(α) cos(β) + cos(α) sin(β)

om bovenstaande aan te tonen.

Met bovenstaand resultaat kan de rotatie van A naar E worden geschreven als de matrix vermenigvuldiging:
RA = E, waarin R de rotatie matrix

R = cos(β) sin(β) sin(β) cos(β)

Dus:

cos(β) sin(β) sin(β) cos(β) xA yA = xE yE

Opgaven:

22.
Voer de matrixvermenigvuldiging uit om dit te controleren.

Als punt A niet op de eenheidscirkel ligt maar op een cirkel met straal r dan worden de coördinaten van A:

A = (r cos(α),r sin(α))

Ook nu geldt: RA = E.

Voor we overgaan tot rotaties om een ander punt dan de oorsprong zullen we eerst de andere basistransformaties behandelen, maar nog eerder een paar opgaven.

Opgaven:

23.
Draai de vijfhoek uit opgave 15 over een hoek van π3 om de oorsprong zowel met een berekening (Maak de rotatie matrix R) op papier als in geogebra. (Als het programmeren nog niet is gestart voorlopig overslaan) Doe hetzelfde met behulp van de GraphicsApplet. Negeer voorlopig de omgekeerde oriëntatie van het computerscherm.
24.
Geef ook de rotatiematrix R1 die de rotatie R uit de vorige opgave weer ongedaan maakt (dus een rotatie over π3). Laat zien dat RR1 = R1R = 10 0 1 = I. NB: een matrix met alleen enen op de diagonaal van linksboven naar rechtsonder en verder alleen nullen noemen we een eenheidsmatrix (I).
25.
Draai de vijfhoek uit opgave 16 in vijf gelijke stappen weer in zijn oorspronkelijke positie.
26.
Maak nog een veelhoek met en draai die over hoek naar keuze om de oorsprong

4.3 Spiegelen


Figuur 5: Spiegeling

SVG-Viewer needed.

SVG-Viewer needed.


Bij een spiegeling in een lijn krijgt een punt (b.v. E in de figuren hieronder) een beeldpunt aan de andere kant van die lijn (E) op een zelfde afstand tot die lijn als het oorspronkelijke punt. Het beeldpunt komt te liggen op de loodlijn op de spiegellijn door het punt E. Voor de algebraïsche bewerking kijken we voorlopig alleen naar een spiegeling in de x-as. Spiegelingen in een andere lijn zullen pas later behandelen. Bij een spiegeling in de x-as blijft de x- coördinaat van het beeldpunt gelijk aan die van het origineel. De y- coördinaat blijft even groot alleen negatief. Dus b.v. het punt E=(5,5) wordt afgebeeld op E’=(5,-5). In de lineaire algebra kunnen we dat als volgt weergeven:

1 0 0 1 xE yE = xE yE

Waarin Sx = 1 0 0 1 de matrix voor een spiegeling in de x-as.

Opgaven:

27.
Toon aan dat het beeld van E gelijk is aan E’ door de matrixvermenigvuldiging uit te voeren.
28.
Spiegel de vijfhoeken uit opgave 15 en 16 zowel op papier als in geogebra. (Als het programmeren nog niet is gestart voorlopig overslaan) Doe het zelfde met de GrapicsApplet. Waarom krijg je in het tweede geval niets te zien?
29.
Beredeneer waarom de inverse Sx1 gelijk aan Sx. Toon dit aan door de matrixvermenigvuldiging SxSx uit te voeren. Het product moet de eenheidsmatrix leveren.

4.4 Schalen


Figuur 6: Schalen

SVG-Viewer needed.


Bij het schalen van een object wordt de afstand van een object tot een referentiepunt veranderd. In de figuur hiernaast is de veelhoek ABCD ten opzichte van de oorsprong in zowel de x- als in de y- richting met 3 vermenigvuldigd. Het schalen hoeft niet in beide richtingen de zelfde grootte te hebben. Op je GR stel je soms ook voor de x en de y as verschillende eenheden in die een zinvol plaatje leveren. Ook schalen kun je in de lineaire algebra met een matrixvermenigvuldiging uitvoeren. Hier behandelen we eerst een vermenigvuldiging ten opzichte van de oorsprong. De afbeelding van B op B wordt gegeven door V B = B, waarin

V = vx 0 0 vy

Voor de figuur hiernaast is vx = vy = 3.

Opgaven:

30.
Toon dit weer aan door de matrix vermenigvuldiging uit te voeren.
31.
Vermenigvuldig de vijfhoeken uit opgave 15 en 16 zowel op papier als in geogebra. (Als het programmeren nog niet is gestart voorlopig overslaan) Doe hetzelfde met de GrapicsApplet in de x- richting met 2 en in de y- richting met 0.5.
32.
Wat is de inverse matrix V 1 van V ?.

4.5 Combinaties van transformaties

Transformaties kun je achter elkaar uit voeren. Zo kun je bijvoorbeeld eerst spiegelen en daarna een translatie uitvoeren of andersom, roteren en schalen, enzovoort. Aan de hand van een aantal voorbeelden zal getoond worden hoe een beeldpunt van een gecombineerde afbeelding algebraïsch wordt verkregen. De voorbeelden zijn in een volgorde geplaatst die uiteindelijk zullen leiden tot de mogelijkheid om door een scherm heen te navigeren. Daarna gaan we nog spiegelen, schalen en roteren ten opzichte van andere lijnen en punten dan de oorsprong behandelen.

4.5.1 Voorbeelden

Voorbeeld 1:
Schermoriëntatie:

SVG-Viewer needed.


Tot nu toe heb je in je wiskundige leven assenstelsels getekend waar de oorsprong linksonder wordt geplaatst en de waarden op x-as naar rechts groter worden en waarden op de y-as naar boven groter worden. Computerschermen worden net als een boek van boven naar beneden en van links naar rechts gevuld. In een boek ligt regel 6 onder regel 5. Om deze reden heeft het computerscherm een ander assenstelsel gekregen met de oorsprong linksboven en de waarden op de y-as toenemend naar onder. In onze werkelijkheid willen we graag boven als boven zien en zijn we dus genoodzaakt onze werkelijkheid te vertalen naar het assenstelsel van de computer.

Bekijk figuur 4.5.1: De rechter kant is de ”werkelijkheid”. Als we deze zonder verandering zouden doorgeven aan de tekenroutines van de computer dan krijgen we het linker beeld. We willen echter het zelfde blijven zien als rechts. Om dat te bereiken moeten we dus een afbeelding maken die de oorsprong (0, 0) in het rechter figuur omzet in (0,ymax) in de linker figuur en evenzo (0,ymax) voor rechts naar (0, 0) voor links. Dit kan op de volgende manier: spiegel in de x-as en transleer met de vector
v = 0 y max

Voor een willekeurig punt A in het scherm krijgen we:

SxA+v = 1 0 0 1 xA yA + 0 y max

Net als bij gewoon rekenen gaat vermenigvuldigen voor optellen en aftrekken.

Opgaven:

33.
Toon aan dat (0, 0) zo op (0,ymax) wordt afgebeeld en (0,ymax) op (0, 0).
34.
Noem de hele bewerking P. Hoe ziet P1 er dan uit. Is dit zomaar een matrix vermenigvuldiging?
35.
Neem ymax = 500.
(a)
Geef de beeldpuntcoördinaten voor het werkelijke punt (10, 100)
(b)
Geef de werkelijke coördinaten bij het beeldpunt (25, 125).
36.
(Als het programmeren nog niet is gestart voorlopig overslaan) Implementeer dit voor de vijfhoek uit 15 en het huisje dat al in de GraphicsApplet aanwezig was.

Voorbeeld 2:
Omzetten van eenheden:

SVG-Viewer needed.


In figuur 4.5.1 is het origineel aan de rechterkant niet op de zelfde schaal als de eenheden op het scherm dat nu 600 pixels breed en 400 pixels hoog is. Stel er moet geschaald gaan worden zodat de figuur beeldvullend wordt overgenomen. De afbeelding van het origineel loopt nu in 3 stappen. Eerst schalen we de x en y as naar de juiste eenheden. Voor de x-as betekent dat een vermenigvuldiging met (600 0)(10 0) = 60. Voor de y-as betekent dat een vermenigvuldiging met (400 0)(1 0) = 400. Daarna zijn we weer terug bij voorbeeld 1 en moeten we spiegelen in de x-as en transleren met de vector

v = 0 400 .

Voor een willekeurig punt A in het scherm krijgen we dan:

SxRA+v = 1 0 0 1 60 0 0 400 xA yA + 0 400

Dit kunnen we herschrijven door eerst de vermenigvuldiging SxR uit te voeren

SxRA+v = 60 0 0 400 xA yA + 0 400

Opgaven:

37.
Noem de hele bewerking Q. Hoe ziet Q1 er dan uit. Is dit zomaar een matrix vermenigvuldiging?
38.
Geef de coördinaten op het scherm(600 bij 400) voor de vierhoek ABCD met A = (0.1, 10),B = (0.4, 5),C = (0.5, 20) en D = (0.3, 40) in een assenstelsel staat met Xmin = 0,Xmax = 1,Y min = 0,Y max = 50
39.
Op het scherm uit de vorige opgave staat een punt met schermcoördinaten (10, 10). Wat zijn de ”werkelijke” coördinaten.

Voorbeeld 3:
Omzetten van eenheden 2:

SVG-Viewer needed.


De situatie in figuur 4.5.1 is hetzelfde als hierboven, echter in het rechter plaatje is de linker onder hoek niet de oorsprong. Nu kunnen we eerst het punt (2,-1) op de oorsprong afbeelden en vervolgens het recept van voorbeeld 3 uitvoeren. (2,-1) beelden we af op (0,0) met de translatie

w = 2 1 .

Voor een willekeurig punt A in het scherm krijgen we dan:

SxR(A+w)+v = 1 0 0 1 60 0 0 200 xA yA + 2 1 + 0 400

ofwel

SxR(A+w)+v = 60 0 0 200 xA yA + 2 1 + 0 400

Opgaven:

40.
Geef de cordinaten op het scherm(600 bij 400) voor de vierhoek ABCD met A = (0.1, 10),B = (0.4, 5),C = (0.5, 20) en D = (0.3, 40) in een assenstelsel staat met Xmin = 0,Xmax = 1,Y min = 0,Y max = 50
41.
Op het scherm uit de vorige opgave staat een punt met schermcoördinaten (10, 10). Wat zijn de ”werkelijke” coördinaten.
42.
Als het programmeren nog niet is gestart voorlopig overslaan) Teken 4 huizen op een rij. Gebruik daarbij translaties.

Voorbeeld 4:
Draaien om een ander punt dan de oorsprong:

Bij het draaien van een punt A om een ander punt P dan de oorsprong gaan we als volgt te werk:

Als één bewerking geschreven wordt dat

E = C(A P) + P

Opgaven:

43.
De vierhoek ABCD met A = (1, 1),B = (2, 5),C = (5, 5) en D = (3, 7) wordt over een hoek van π4 radialen gedraaid om het punt (3, 3). Bereken de nieuwe cordinaten van A,B,C en D. (Hint probeer het eerst uit in geogebra).

Voorbeeld 5:
Spiegelen in een lijn anders dan de x-as:

Bij het spiegelen van een punt A in een andere lijn dan de x-as kunnen we als volgt te werk gaan:

Als één bewerking geschreven wordt dat

E = CS xC(A P) + P

Opgaven:

44.
De vierhoek ABCD met A = (1, 1),B = (2, 5),C = (5, 5) en D = (3, 7) wordt gespiegeld in de lijn y = x + 1. Bereken de nieuwe cordinaten van A,B,C en D. (Hint probeer het eerst uit in geogebra).
45.
(Als het programmeren nog niet is gestart voorlopig overslaan) Draai het huis uit de GraphicsApplet om het dak.
46.
(Als het programmeren nog niet is gestart voorlopig overslaan) Spiegel het huis in de lijn y = x.
47.
Wiskunde B leerlingen: Toon aan dat CS xC gelijk is aan
cos(2α) sin(2α) sin(2α) cos(2α)