In de inleiding (1) is het oplossen van vergelijkingen de introductie geweest van matrices en vectoren. Als conclusie was er
dat de vergelijking
wordt opgelost door links en rechts te vermenigvuldigen met de inverse
. Tot nu toe weet
je nog niet hoe
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
Bij een translatie blijft de vorm intact er wordt alleen een andere positie ingenomen. In de figuur hiernaast is de
vierhoek
verschoven naar .
De algebraïsche bewerking die hiervoor wordt uitgevoerd is dat we de coördinaten van de punten
en
veranderen
naar die van en
. Dit doen we voor
b.v. punt door de
translatievector op te
tellen bij de vector het
resultaat is de vector
die wijst naar het punt .
De afbeelding moeten we dan voor alle punten herhalen. Vervolgens kunnen de lijnen worden
getekend.
Opgaven:
15.
Transleer de vijfhoek
met
met de vector
16.
Teken in geogebra de vijfhoek
met
. Wat worden de coördinaten van vijfhoek
die ontstaat door
over de vector
te transleren? Hoe krijg je uitgaande van vijfhoek
de oorspronkelijke vijfhoek
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
Figuur 3: Eenheidscirkel a
Figuur 4: Eenheidscirkel b
Bij een rotatie wordt een object gedraaid om een middelpunt over een hoek. In de figuur 2 is de vierhoek
gedraaid over
een hoek
om punt
naar .
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
- coördinaat
wordt en de
- coördinaat
wordt , waarin
de hoek (in radialen) is
die het lijnstuk maakt
met de positieve -as.
Die waarden zijn dan gelijk aan de waarden op de assen bij een loodrechte projectie op die assen. Dus
NB: 1 graad = /180
radialen
Opgaven:
20.
Toon dit voor de rechthoekige driehoek
aan met behulp van de definities voor de cosinus (cas) en de sinus (sos).
Als we punt nu over een
hoek verder draaien naar
punt (zie figuur 4) dan
worden de coördinaten van
gelijk aan in de volgende opgave ga je
aantonen dat dit gelijk is aan
Opgaven:
21.
Alleen voor leerlingen met wiskunde B in het pakket. Gebruik de goniometrische formules
en
om bovenstaande aan te tonen.
Met bovenstaand resultaat kan de rotatie van
naar
worden geschreven als de matrix vermenigvuldiging: , waarin
de
rotatie matrix
Dus:
Opgaven:
22.
Voer de matrixvermenigvuldiging uit om dit te controleren.
Als punt
niet op de eenheidscirkel ligt maar op een cirkel met straal
dan worden de
coördinaten van :
Ook nu geldt: .
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
om de oorsprong zowel met een berekening (Maak de rotatie matrix )
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
die de rotatie
uit de vorige opgave weer ongedaan maakt (dus een rotatie over ).
Laat zien dat .
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
Bij een spiegeling in een lijn krijgt een punt (b.v.
in de figuren hieronder) een beeldpunt aan de andere kant van die lijn
() 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 .
Voor de algebraïsche bewerking kijken we voorlopig alleen naar een spiegeling in de
-as.
Spiegelingen in een andere lijn zullen pas later behandelen. Bij een spiegeling in de
-as blijft
de -
coördinaat van het beeldpunt gelijk aan die van het origineel. De
-
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:
Waarin de matrix voor
een spiegeling in de -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
gelijk aan .
Toon dit aan door de matrixvermenigvuldiging
uit te voeren. Het product moet de eenheidsmatrix leveren.
4.4 Schalen
Figuur 6: Schalen
Bij het schalen van een object wordt de afstand van een object tot een referentiepunt veranderd. In de figuur hiernaast is de
veelhoek ten opzichte van
de oorsprong in zowel de -
als in de - 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
en de
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
op wordt
gegeven door ,
waarin
Voor de figuur hiernaast is .
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
-
richting met 2 en in de -
richting met 0.5.
32.
Wat is de inverse matrix
van ?.
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:
Tot nu toe heb je in je wiskundige leven assenstelsels getekend waar de oorsprong linksonder wordt geplaatst en de
waarden op -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 -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
in het rechter figuur omzet
in in de linker figuur en
evenzo voor rechts naar
voor links. Dit kan op de
volgende manier: spiegel in de -as
en transleer met de vector
Voor een willekeurig punt
in het scherm krijgen we:
Net als bij gewoon rekenen gaat vermenigvuldigen voor optellen en aftrekken.
Opgaven:
33.
Toon aan dat
zo op
wordt afgebeeld en
op .
34.
Noem de hele bewerking .
Hoe ziet
er dan uit. Is dit zomaar een matrix vermenigvuldiging?
35.
Neem .
(a)
Geef de beeldpuntcoördinaten voor het werkelijke punt
(b)
Geef de werkelijke coördinaten bij het beeldpunt .
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:
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
en
as naar de juiste eenheden.
Voor de -as betekent dat
een vermenigvuldiging met .
Voor de -as betekent dat
een vermenigvuldiging met .
Daarna zijn we weer terug bij voorbeeld 1 en moeten we spiegelen in de
-as en
transleren met de vector
Voor een willekeurig punt
in het scherm krijgen we dan:
Dit kunnen we herschrijven door eerst de vermenigvuldiging
uit te
voeren
Opgaven:
37.
Noem de hele bewerking .
Hoe ziet
er dan uit. Is dit zomaar een matrix vermenigvuldiging?
38.
Geef de coördinaten op het scherm(600 bij 400) voor de vierhoek
met
en
in een assenstelsel staat met
39.
Op het scherm uit de vorige opgave staat een punt met schermcoördinaten .
Wat zijn de ”werkelijke” coördinaten.
Voorbeeld 3:
Omzetten van eenheden 2:
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
Voor een willekeurig punt
in het scherm krijgen we dan:
ofwel
Opgaven:
40.
Geef de cordinaten op het scherm(600 bij 400) voor de vierhoek
met
en
in een assenstelsel staat met
41.
Op het scherm uit de vorige opgave staat een punt met schermcoördinaten .
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
om een ander punt
dan de oorsprong gaan we als volgt te werk:
Verhuis de oorsprong naar het draaipunt
door het punt
te transleren over
( ).
Draai nu
door middel van een rotatiematrix
om de oorsprong. .
Vervolgens verhuis je
terug naar de oorspronkelijke positie door bij
het draaipunt
weer op te tellen. .
Als één bewerking geschreven wordt dat
Opgaven:
43.
De vierhoek
met
en
wordt over een hoek van
radialen gedraaid om het punt .
Bereken de nieuwe cordinaten van
en .
(Hint probeer het eerst uit in geogebra).
Voorbeeld 5:
Spiegelen in een lijn anders dan de x-as:
Bij het spiegelen van een punt
in een andere lijn dan de -as
kunnen we als volgt te werk gaan:
Als lijn niet door oorsprong gaat verhuis je de oorsprong zodanig dat die op de lijn komt te
liggen. Dit doe je door van
een punt
op de lijn af te trekken.
Als de lijn hierna niet de -as
is dan draaien we de lijn en ook het punt over een hoek
zodat die gelijk wordt aan de -as.
.
De hoek
kun je eenvoudig verkrijgen door of
(richtingscoëfficiënt van de lijn ) of door nog een punt
op de lijn te kiezen, vervolgens de
uit te rekenen. Vervolgens bereken je .
Spiegel nu
door middel van de spiegelmatrix in de as.
Draai nu weer terug over hoek van
verwerkt in rotatiematrix :
.
Vervolgens verhuis je
terug naar het oorspronkelijke coördinatenstelsel door bij
weer op te tellen.
Als één bewerking geschreven wordt dat
Opgaven:
44.
De vierhoek
met
en
wordt gespiegeld in de lijn .
Bereken de nieuwe cordinaten van
en .
(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
.