Forelesningsnotater SIF8039/ Grafisk databehandling Notater til forelesninger over: Kapittel 4: ”Geometric Objects and Transformations” i: Edward Angel: ”Interactive Computer Graphics” Vårsemesteret 2002 Torbjørn Hallgren Institutt for datateknikk og informasjonsvitenskap Norges teknisk-naturvitenskapelige universitet
Geometriske transformasjoner Flytting og endring av objekter modellert i egne koordinatsystemer Sette sammen objekter av delobjekter Endring av koordinatsystem Også kalt: Modelleringstransformasjoner Koordinattransformasjoner
Plan Basistransformasjonene Problem: Rotasjoner rundt vilkårlig akse Konstatere problem Løse problemet Basistransformasjonene på nytt Rotasjoner rundt vilkårlig akse Stoff for mer enn en dobbelttime
Geometriske transformasjoner Skalering Rotasjon Basistransformasjoner Translasjon Skjærtransformasjoner Refleksjon
Skalering 2 x 3 x Skalering relativt origo. (Referansepunkt: origo)
Skalering På matriseform:
Rotasjon y Rotasjonsvinkel: x Rotasjon i planet om origo. (Referansepunkt: origo)
Rotasjon Ser på rotasjon av ett punkt: y (x’,y’) (x,y) x
Rotasjon På matriseform: Rotasjon i x-y-planet kan sees på som rotasjon om z-aksen med konstant z. I 3D blir da matriseformen:
Rotasjon På samme måte: rotasjon om x-aksen: Rotasjon om y-aksen:
Rotasjon Syklisk ombytting som grunnlag for rotasjons- matrisene om x- og y-aksene: z -> x z -> x -> y y -> z y -> z -> x x -> y x -> y -> z
Rotasjon Enhver rotasjon kan sees på som sammensatt av en rotasjon om hver av koordinataksene.
Translasjon y (x’,y’) (x,y) x
Translasjon På vektorform: PROBLEM: lar seg ikke skrive på matriseform ved hjelp av en 3x3-matrise!!
Affine rom Ved hjelp av homogene koordinater: Hjelper oss å skille mellom de geometriske entitetene: punkt og vektorer Ordner opp med translasjons-problemet
Punkt og vektorer -Punkt er steder i rommet -Vektorer har lengde og retning, men er IKKE stedfestet
Koordinatsystemer z Et koordinatsystem er et vektorrom spent ut av en basis bestående av tre ortonormale enhetsvektorer. For å kunne angi koordinater, har vi i tillegg et origo y x
Vektorrom En mengde av vektorer med gyldige operasjoner: addisjon skalar multiplikasjon og med følgende egenskaper: u + v = v + u (kommutativ) ( u + v ) + w = u + ( v + w ) (assosiativ) u + 0 = u (nullvektor) a + ( -a ) = 0 ß ( u + v ) = ß u + ß v (distributiv) ( ß + µ ) u = ß u + µ u (distributiv) ß ( µ u ) = ( ß µ ) u (assosiativ) 1 u = u u, v og w er vektorer. ß og µ er skalarer
Vektorrom og affine rom Vektorrom av dimensjon n har en basis bestående av n lineært uavhengige vektorer: v1, v2, v3, … , vn Affine rom: For affine rom inngår i tillegg et referanse-punkt slik at basis blir: v1, v2, v3, … , vn, P0
Affine rom Tilleggsegenskap for affine rom: v = P - Q (punkt-punkt subtraksjon gir en vektor) Q = v + P (vektor-punkt sum gir et punkt) Begrepet koordinatsystem erstattes med begrepet frame
Affine rom Vektorer i det affine rommet: med ”representasjonen”:
Affine rom Punkt i det affine rommet: med ”representasjonen”:
Homogene koordinater Punkt: Vektorer:
Skalering På matriseform med homogene koordinater:
Rotasjon
Rotasjon Om z-aksen på matriseform i homogene koordinater:
Rotasjon Rotasjon om x-aksen i homogene koordinater: Rotasjon om y-aksen i homogene koordinater:
Translasjon På matriseform i homogene koordinater: Vi har løst problemet!!
Egenskaper ved skalering Invers transformasjon: To skaleringer etter hverandre:
Egenskaper ved rotasjon Invers transformasjon: To rotasjoner om samme akse etter hverandre: Ortogonalitet:
Egenskaper ved translasjon Invers transformasjon: To translasjoner etter hverandre:
Rotasjon om punkt utenfor origo y Rotasjonsakse parallell med z-aksen (x,y,z) x 1. Translere slik at rotasjonsaksen faller langs z-aksen 2. Rotere 3. Translere tilbake
Konkatenering Sammenslåing av transformasjoner Eks.: punktet p gjennomgår transformasjonene A, B og C i nevnte rekkefølge: p’=Ap p’’=Bp’=BAp p’’’=Cp’’=CBAp Resultattransformasjon: M=CBA TRANSFORMASJONENE KONKATENERES I MOTSATT REKKEFØLGE I FORHOLD TIL REKKEFØLGEN DE UTFØRES I
Rotasjon om vilkårlig akse z P Rotere vinkelen ß om aksen gjennom punktene P og Q Q y x
Rotasjon om vilkårlig akse Plan: 1. Translere slik at Q faller i origo 2. ”Svinge” rotasjonsaksen inn i x-z-planet 3. ”Svinge” rotasjonsaksen slik at den faller sammen med z-aksen 4. Rotere vinkelen ß om z-aksen 5. Invers av 3 6. Invers av 2 7. Invers av 1
Rotasjon om vilkårlig akse z Retningsvinkler: P , og Q Q’ y x Steg 1 - translasjon av rotasjonsaksen
Rotasjon om vilkårlig akse Nyttig for ”fremtidig bruk” - enhetsvektor i rotasjons- akseretningen: Vektor i retningen: Enhetsvektor:
Rotasjon om vilkårlig akse retningskosinuser
Rotasjon om vilkårlig akse z d v Q’ y x Steg 2 - ”svinge” rotasjonsaksen inn i x-z-planet
Rotasjon om vilkårlig akse z v x Steg 3 - svinge rotasjonsaksen slik at den faller sammen med z-aksen
Rotasjon om vilkårlig akse Transformasjonene for stegen 1 og 2 blir etter dette:
Rotasjon om vilkårlig akse Transformasjonene for stegen 3 og 4 blir etter dette:
Rotasjon om vilkårlig akse Den fullstendige transformasjonen blir:
Basistransformasjonene Enhver kombinasjon av basistransformasjonene resulterer i en transformasjonsmatrise av formen: Affine transformasjoner Affine transformasjoner bevarer parallellitet (alle tre basistransformasjonene) Stive transformasjoner bevarer i tillegg størrelse og vinkler (rotasjon og translasjon)
Skifte av koordinatsystem z n u v y Kjenner koordinatene i xyz-systemet. Søker koordinatene i uvn-systemet: Puvn=Muvn<-xyzPxyz x
Skifte av koordinatsystem Ser på uvn-systemet som et objekt skapt i xyz-systemet med akser sammenfallende med xyz-systemets akser Transformasjon til nåværende posisjon med matrisen M Referansen til et punkt i ”uvn-objektet i sin endelige posisjon” referert til xyz-system: [ x’ y’ z’ 1 ]T som tilsvarer Pxyz Referansen til det samme punktet i sin opprinnelige posisjon i xyz-systemet: [ x y z 1 ]T = [ u v n 1 ]T som tilsvarer Puvn
Skifte av koordinatsystem Vi får: Pxyz = M Puvn Puvn= M-1 Pxyz Muvn<-xyz = M-1 Konklusjonen er: Matrisen for transformasjon av koordinater i xyz-systemet til koordinater i uvn-systemet kommer fram av den transformasjonen som skal til for at uvn-systemet flyttes slik at dets akser faller sammen med xyz-systemets
Ortogonale matriser Definisjon av ortogonal matrise: Teorem: En reell kvadratisk matrise er ortogonal hvis og bare hvis kolonnevektorene og radvektorene hver for seg danner ortonormale systemer
Ortogonale matriser Rotasjonsmatrisen:
Ortogonale matriser Dette koordinatsystemet kan være ett som er forankret på en intelligent måte i vårt objekt som skal roteres
Ortogonale matriser z v P Rotere vinkelen ß om aksen gjennom punktene P og Q u Q n y Vesentlig: En av enhetsvektorene legges langs rotasjonsaksen. De to andre enhetsvektorene kan velges fritt slik det er mest hensiktsmessig så lenge de tre danner et ortonormalt system x
Ortogonale matriser Rotasjonsaksen vil nå ligge langs en av koordinataksene (langs x-aksen dersom enhetsvektoren u ble lagt langs rotasjonsaksen)
Ortogonale matriser Systemet av ortonormale vektorer er tilbake på sin opprinnelige plass. Rotasjonen er fullført