530 likes | 741 Views
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
E N D
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: • 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: • 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”:
Punkt: Vektorer: Homogene koordinater
Skalering På matriseform med homogene koordinater:
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