2IV10 Instructie 3: Transformaties en viewing



Vergelijkbare documenten
2IV10 Oefentoets uitwerking

Wiskunde D vwo Lineaire algebra. Presentatie Noordhoff wiskunde Tweede Fase congres 19 november 2015 Harm Houwing en John Romkes

2IV10 Oefentoets 2010

Introductie Lineaire Algebra Voor Computer Graphics

x cos α y sin α . (1) x sin α + y cos α We kunnen dit iets anders opschrijven, namelijk als x x y sin α

Tentamen 2IV10 Computergrafiek

FACULTEIT ECONOMIE EN BEDRIJFSKUNDE Afdeling Kwantitatieve Economie

Tentamen 2IV10 Computergrafiek

Trillingen en geluid wiskundig. 1 De sinus van een hoek 2 Uitwijking van een trilling berekenen 3 Macht en logaritme 4 Geluidsniveau en amplitude

IN2905-I Computer Graphics 18 juni 2008, uur.

Lineaire afbeeldingen

11.0 Voorkennis V

HOOFDSTUK 2 TRANSFORMATIES

Nieuwe invoercellen voeg je toe door de cursor tussen twee cellen in te zetten, en invoer in te tikken.

Examen VWO. wiskunde B (pilot) tijdvak 1 woensdag 22 mei uur. Bij dit examen hoort een uitwerkbijlage.

Lineaire Algebra voor ST

BIOFYSICA: Toets I.4. Dynamica: Oplossing

De grafiek van een lineair verband is altijd een rechte lijn.

CTB1002 deel 1 - Lineaire algebra 1

Lineaire Algebra voor ST

Examen HAVO. wiskunde B (pilot) tijdvak 2 donderdag 18 juni uur. Bij dit examen hoort een uitwerkbijlage.

8.1 Rekenen met complexe getallen [1]

Correcties en verbeteringen Wiskunde voor het Hoger Onderwijs, deel A.

De grafiek van een lineair verband is altijd een rechte lijn.

0. voorkennis. Periodieke verbanden. Bijzonder rechthoekige driehoeken en goniometrische verhoudingen

Transformaties van grafieken HAVO wiskunde B deel 1

6.1 Eenheidscirkel en radiaal [1]

7.0 Voorkennis. tangens 1 3. Willem-Jan van der Zanden

Appendix Inversie bekeken vanuit een complex standpunt

16.0 Voorkennis. Voorbeeld 1: Los op in 2x + 3i = 5x + 6i -3x = 3i x = -i

Technische Universiteit Delft. ANTWOORDEN van Tentamen Gewone differentiaalvergelijkingen, TW2030 Vrijdag 30 januari 2015,

IJkingstoets Wiskunde-Informatica-Fysica 1 juli 2015 Oplossingen

Origami Meetkunde. Peter Lombaers en Jan-Willem Tel 26 mei 2011

Voorbeeldopgaven Meetkunde voor B

Werkblad Cabri Jr. Rotaties


Transformaties van grafieken HAVO wiskunde B deel 2. Willem van Ravenstein Haags Montessori Lyceum (c) 2016

te vermenigvuldigen, waarbij N het aantal geslagen Nederlandse munten en B het aantal geslagen buitenlandse munten zijn. Het resultaat is de vector

Vierde huiswerkopdracht Lineaire algebra 1

Opgave 1 Bekijk de Uitleg, pagina 1. Bekijk wat een vectorvoorstelling van een lijn is.

Boldriehoeken op een wereldkaart. 1. Op zoek naar de kortste afstand

Principe van Stereovisie

Morenaments Ornamenten met symmetrie. Werkblad vooraf met begeleidende tekst en oplossingen

Samenvatting wiskunde havo 4 hoofdstuk 5,7,8 en vaardigheden 3 en 4 en havo 5 hoofdstuk 3 en 5 Hoofdstuk 5 afstanden en hoeken Voorkennis Stelling van

IJkingstoets burgerlijk ingenieur juni 2014: algemene feedback

Eindopdracht Wiskunde en Cultuur 2-4: Geostationaire satellieten Door: Yoeri Groffen en Mohamed El Majoudi Datum: 20 juni 2011

Cabri werkblad Lineaire transformaties met Cabri

IJkingstoets burgerlijk ingenieur september 2013: algemene feedback

Achter het correctievoorschrift is een aanvulling op het correctievoorschrift opgenomen.

UNIFORM EINDEXAMEN MULO tevens TOELATINGSEXAMEN VWO/HAVO/NATIN 2009

wiskunde B pilot havo 2016-I

4. Determinanten en eigenwaarden

Statica(WB/MT) college 4 Moment, uitprodukt. Guido Janssen

5. Werken met afbeeldingen

2 Inproduct. Verkennen. Uitleg

Examen Lineaire Algebra en Meetkunde Tweede zit (13:30-17:30)

Examen havo wiskunde B 2016-I (oefenexamen)

UITWERKINGEN 1 2 C : 2 =

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica

Examen VWO. wiskunde B (pilot) tijdvak 2 woensdag 18 juni uur. Achter dit examen is een erratum opgenomen.

Werk met de applet. Bedenk steeds welke parameter a, b, c en/of d je moet aanpassen. Experimenteer tot je de regelmaat kunt formuleren!

1. Vectoren in R n. y-as

6. Goniometrische functies.

Rotaties in de ruimte, de ruimte van rotaties

Bruno Ernst Symposium

Aan de gang. Wiskunde B-dag 2015, vrijdag 13 november, 9:00u-16:00u

Eindexamen wiskunde B havo I

Matrices en Stelsel Lineaire Vergelijkingen

Examen VWO. wiskunde B. tijdvak 1 dinsdag 25 mei uur. Bij dit examen hoort een uitwerkbijlage.

Uitwerkingen Lineaire Algebra I (wiskundigen) 22 januari, 2015

Kies voor i een willekeurige index tussen 1 en r. Neem het inproduct van v i met de relatie. We krijgen

Handig met getallen 4 (HMG4), onderdeel Meetkunde

Inhoud. Inleiding computer graphics. Introductie 11. Leerkern 14. Terugkoppeling 57. Uitwerking van de opgaven 57

Functies. Verdieping. 6N-3p gghm

Hoofdstuk 2: Grafieken en formules

Parameterkrommen met Cabri Geometry

10.0 Voorkennis. y = -4x + 8 is de vergelijking van een lijn. Hier wordt y uitgedrukt in x.

3.1 Negatieve getallen vermenigvuldigen [1]


V Kegelsneden en Kwadratische Vormen in R. IV.0 Inleiding

Fracdes is een programma dat op een vrij eenvoudige manier toelaat figuren te construeren zoals de Kock-kromme en de Sierpinski-driehoek.

Cabri werkblad Lineaire transformaties met Cabri

Eindexamen vwo wiskunde B pilot 2013-I

Je moet nu voor jezelf een overzicht zien te krijgen over het onderwerp Functies en grafieken. Een eigen samenvatting maken is nuttig.

1. Nieuw document openen: 600 x 600 pix, RGB, 300 dpi, Transparante achtergrond.

Tentamen 2IV10 Computergrafiek

Bij alle verbanden geldt dat je, als je een negatief getal in een formule invult, je altijd haakjes om dat getal moet zetten.

Vectoranalyse voor TG

Opdracht 1 bladzijde 8

( ) Hoofdstuk 4 Verloop van functies. 4.1 De grafiek van ( ) Spiegelen t.o.v. de x-as, y-as en de oorsprong

Magidoku s en verborgen symmetrieën

Poolcoördinaten (kort)

WISKUNDE 5 PERIODEN. DATUM : 4 juni Formuleboekje voor de Europese scholen Niet-programmeerbare, niet-grafische rekenmachine

Je moet nu voor jezelf een overzicht zien te krijgen over het onderwerp Complexe getallen. Een eigen samenvatting maken is nuttig.

Wiskundige Technieken 1 Uitwerkingen Hertentamen 23 december 2014

Examen HAVO. wiskunde B (pilot) tijdvak 1 donderdag 24 mei uur. Bij dit examen hoort een uitwerkbijlage.

Examen havo wiskunde B 2016-I (pilot)

College WisCKI. Albert Visser. 16 januari, Department of Philosophy, Faculty Humanities, Utrecht University. Loodrechte Projectie

8.0 Voorkennis. a De pijlen van O(0, 0) naar A(4, 2) en van A(4, 2) naar B(2, 3) zijn vectoren.

Noorderpoortcollege School voor MBO Stadskanaal. Reader. Wiskunde MBO Niveau 4 Periode 8. M. van der Pijl. Transfer Database

Transcriptie:

2IV0 Instructie 3: Transformaties en viewing. Gegeven een vierkant met ribbe, waarvan de linkeronderhoek in de oorsprong ligt. α s O C B A a. Geef een transformatiematrix waarmee dit vierkant wordt getransformeerd naar een vierkant met ribbe s, geroteerd over een hoek α, waarvan de rechteronderhoek samenvalt met de rechterbovenhoek van het oorspronkelijke vierkant. Eerst transleren we de rechteronderhoek naar de oorsprong (T(-,0)), vervolgens schalen we (S(s,s)) en roteren we (R(-α)). Om consistent met het plaatje te blijven, moet over een negatieve hoek worden geroteerd. Tot besluit transleren we de rechteronderhoek (die nu in de oorsprong staat) naar de rechterboven hoek met T(,). Dit alles in globale coördinaten. De samengestelde matrix M volgt dus uit: M = T(,)R(-α)S(s,s)T(-,0). b. We beschouwen een iets algemenere variant. Geef een recept voor een transformatiematrix voor een geroteerd en geschaald eenheidsvierkant OABC, waarbij het nieuwe hoekpunt O, A, B of C samenvalt met een van de oorspronkelijke hoekpunten O, A, B of C. Definieer P(x) als P(O) =(0,0), P(A)=(,0), P(B)=(,) en P(C)=(0,), en noem het nieuwe hoekpunt Q en het oude hoekpunt Q. Bij het antwoord op a komen twee translaties voor. De translatie T(-,0) bepaalt om welk punt gedraaid wordt, de translatie T(,) bepaalt waar dit punt uiteindelijk terecht komt. Als we dit algemeen maken, dan komen we uit op M=T(P(Q)) R(-α)S(s,s)T(-P(Q )). 2. We bekijken 3D rotaties. a. Geef 3x3 rotatiematrices voor een rotatie Rx(α ) om de x-as en een rotatie Rz(α) om de z-as. 0 0 cosα R x( α) = 0 cosα sin α, en Rz ( α) = sin α sin α cosα 0 sin α cosα 0 0 0

b. Bereken (expliciet) de samengestelde rotatiematrix voor een rotatie over 90 graden (π/2 radialen) om de x-as gevolgd door een rotatie over 90 graden om de z-as. 0 0 0 0 0 0 R z ( 90) Rx(90) = 0 0 0 0 = 0 0 0 0 0 c. Wat is het effect van deze twee opvolgende rotaties? Licht uw antwoord toe. De x-as wordt afgebeeld op de y-as, de y-as op de z-as, en de z-as op de x-as. Met andere woorden, de assen worden gepermuteerd. Ook kun je het effect interpreteren als een rotatie om de vector (,,) over een hoek van 2π/3. d. Krijgen we hetzelfde effect als we de volgorde van roteren omdraaien? Nee. Matrix-vermenigvuldiging is niet commutatief. Als we het uitrekenen, dan krijgen we 0 0 0 0 0 0 R x( 90) Rz (90) = 0 0 0 0 = 0 0 0 0 0 0 en inderdaad, het effect is dramatisch anders. De x-as wordt afgebeeld op de z-as, de y-as op de negatieve x-as, en de z-as op de negatieve y-as. 3. We beschouwen een vervormde kubus. In de oorspronkelijke toestand wordt deze gegeven door 0 <= x,y,z <=. Na de vervorming geldt dat: - het ondervlak (in het XOY-vlak) op zijn plaats blijft; - het bovenvlak horizontaal blijft, maar wel verschuift: het punt (0,0,) wordt verplaatst naar (a, b, c) ; - alle ribben recht en alle vlakken vlak blijven. a. Geef een transformatiematrix voor deze vervorming. De oorsprong blijft op zijn plaats. Er vindt dus geen translatie plaats. Verder, ook de x-as (, 0, 0) en y-as (0,, 0) veranderen niet na transformatie. Echter, voor de z-as (0, 0, ) geldt dat de nieuwe richting (a, b, c) is. Met behulp hiervan kunnen we nu de transformatie-matrix in een keer opschrijven: 0 a 0 0 b 0 M = 0 0 c 0 0 0 Controleer dat als we de punten (0, 0, 0, ), (, 0, 0, ), (0,, 0, ) en (0, 0,, 0) vermenigvuldigen met M (x = Mx, x en x kolomvectoren) we inderdaad het gewenste resultaat krijgen. 4. Gegeven een digitale landkaart. Gewenst is om een stukje van deze kaart in een viewport op het scherm af te beelden. In het midden van de viewport moet het punt C (in kaartcoördinaten) worden afgebeeld, de breedte van het af te beelden stuk is w (in kaartcoördinaten). Uiteraard mag er geen vervorming optreden. De viewport wordt 2

opgegeven in pixels. Voor de pixelcoördinaten geldt dat de oorsprong (het punt (0,0)) linksboven ligt en het punt (Nx-, Ny-) rechtsonder. De linkerbovenhoek van de viewport heeft coördinaten (Xmi, Ymi), de rechteronderhoek (Xma, Yma). a. Geef een transformatie om punt Q in kaartcoördinaten om te zetten in een punt Q in pixelcoördinaten. We bepalen eerst de hoogte h van het window, door te eisen dat de aspect-ratio van window en viewport hetzelfde zijn: h Yma Ymi Yma Ymi = dus h = w. w Xma Xmi Xma Xmi Hiermee kunnen we de linkeronderhoek P van het window bepalen: P = C (w/2, h/2). Het punt P verschuiven we naar de oorsprong (T(-P)). Vervolgens schalen we de breedte naar (S(/w,/w)) en deze schalen we naar de breedte van de viewport (S(Xma-Xmi, Xma-Xmi)). We gebruiken voor de x en y dezelfde schaalfactor, om geen vervorming te introduceren. Om de y-as de goede kant op te laten staan, spiegelen we om de horizontale as (S(, -)). Tot besluit transleren we de oorsprong naar de linkeronderhoek van de viewport (T(Xmi, Yma)). Bij elkaar geeft dit, met de schalingen gecombineerd: M = T(Xmi, Yma)S((Xma-Xmi)/w, -(Xma-Xmi)/w)T(-P). b. Een gebruiker wijst een punt R (pixelcoördinaten) aan. Geef een transformatie om het bijbehorende punt R in kaartcoördinaten te bepalen. Deze transformatie is de inverse van M. R =MR, dus R= M - R. We kunnen de inverse bepalen door een algemene routine op de matrix M los te laten, maar ook kunnen we hem afleiden uit de formule. Er moet gelden dat MM - = I. Dit bereiken we door M rechts te vermenigvuldigen met een reeks transformaties die de transformaties van M van rechts naar links opheffen. We vinden zo: M - = T(P)S(w/(Xma-Xmi), -w/(xma-xmi))t(-xmi, -Yma). 5. Gegeven een 3D scene, die wordt bekeken met een virtuele camera. De camera heeft positie P, staat gericht in de richting W, en lijnen in de richting van een vector V komen verticaal in beeld. Aangenomen mag worden dat V en W eenheidsvectoren zijn en loodrecht op elkaar staan. Bij de volgende vragen wordt gevraagd om het effect van de camerabeweging op P, V en W. a. Geef recepten om de camera voor- en achteruit, omhoog en omlaag, en naar links en rechts te bewegen. We definieren een extra hulpvector U=W V. We hebben nu een compleet assenstelsel voor onze virtuele camera: U staat naar rechts, V omhoog, en W loodrecht het scherm in. Hiermee kunnen we de gewenste operaties uitvoeren. Dit zou ook kunnen met algemene transformatie-routines, maar hier is het net zo handig om het rechtstreeks te doen. Als de verplaatsing a is, dan krijgen we Voor- en achteruit: Omhoog en omlaag: Rechts/links: P = P ± aw; P = P ± av; P = P ± au; 3

De vectoren V en W veranderen niet, het gaat hier om translaties. b. Geef recepten voor het roteren van de camera: pitch (links/rechts), yaw (naar onder/boven), roll (rotatie om middelpunt beeld). Hier veranderen de vectoren V en W, en blijft P hetzelfde. Ook dit zou weer met algemene transformatie-routines kunnen worden gedaan, maar rechtstreeks is handiger. Twee orthonormale 3D vectoren X en Y kunnen we roteren via: procedure RotVecs(X, Y: T3Dvector; var X, Y : T3Dvector; α: real); begin X = cos α X + sin α Y ; Y = sin α X + cos α Y end; Hiermee kunnen we de gevraagde rotaties opschrijven als: pitch: yaw: roll: RotVecs(U, W, U, W, α); // rotatie om V RotVecs(V, W, V, W, α); // rotatie om U RotVecs(U, V, U, V, α); // rotatie om W c. Stel dat de camera gecentreerd is om een punt C. Geef weer recepten voor rotatie, waarbij de camera op dit punt gecentreerd blijft. Het antwoord voor b geeft de gevraagde nieuwe oriëntatie van de vectoren. De nieuwe positie van P kunnen we bepalen door gebruik te maken van de betekenis van de vectoren. De vector W staat in de richting van P naar C, en na het draaien van de camera willen we dat W in de richting van P naar C staat. De vector W weten we al, en die kunnen we gebruiken om P te bepalen: P = C W P C. Ofwel, de nieuwe positie van de camera vinden we door vanuit C in de richting van W te gaan over dezelfde afstand P C als in de oorspronkelijke situatie. Voor de liefhebber: 6. We gaan uit van opgave 3, waarbij we keken naar het afbeelden van een digitale kaart. Stel dat een gebruiker de kaart heeft gecentreerd op een punt C (bijvoorbeeld Eindhoven) met een breedte w (0 km). Vervolgens geeft hij op dat hij de kaart wil centreren op een punt C (Amsterdam) met een breedte w (20 km). Gewenst is een animatie C(t), w(t), zodat een vloeiende overgang wordt getoond. a. Wat zou je als eisen formuleren? We zouden bijvoorbeeld willen dat (a) de animatie continu is (geen schoksgewijze bewegingen), dat (b) de hoeveelheid beweging op het scherm constant is en dat (c) de animatie efficiënt is van C naar C in de kortste tijd. b. Hoe zou je zo n animatie kunnen definieren? 4

We zouden eerst kunnen uitzoomen, vervolgens de camera transleren, en daarna weer inzoomen. Om bij het uitzoomen een constante verandering te krijgen, veranderen we w steeds met een constante factor: w(t+ t) = f w(t), met f>, totdat w(t) = w MAX. Als we deze differentievergelijking omzetten naar een differentiaalvergelijking (dw/dt=fw) en die oplossen, dan krijgen we w(t)=exp(ft). Voor w MAX gebruiken we α C-C, zodat de maximale uitzoomfactor afhankelijk is van de afstand tussen C en C. Lineair veranderen van w (w(t+ t) = w(t) + w) geeft geen constante verandering: Bij w=0km heeft een verandering van km veel meer effect dan bij w=00km. De translatie kan wel lineair gebeuren: C(t+ t ) = C(t) + s(c-c ). Bij het inzoomen gebruiken we een factor /f. Tot besluit stellen we de factoren α, s en f experimenteel in, zodat op het oog een prettige animatie ontstaat. Deze oplossing kan worden verbeterd. Bij de overgang van zoomen naar translatie treedt een schok(je) op, en het is ook niet de meest efficiënte route. Mooier is om tegelijkertijd de camera te verplaatsen en in- of uit te zoomen, onze virtuele camera moet een soort boog over de kaart heen beschrijven. Het is niet eenvoudig om te bepalen hoe dit te doen. Voor een complete uitwerking, zie: Wijk, J.J. van, Wim A.A. Nuij. Smooth and Efficient Zooming and Panning. In: T. Munzner, S. North (eds.), Proceedings IEEE Symposium on Information Visualization (InfoVis'2003), IEEE Computer Society Press, October 2003, p. 5-22. (http://www.win.tue.nl/~vanwijk/zoompan.pdf). 5