570 likes | 720 Views
Computer Graphics. Presentatie titel. Technische Informatica www.hogeschool-rotterdam.nl/cmi. Rotterdam, 00 januari 2007. Les 3. Les 3 gaat over de hoofdstukken: 4.1 Meetkundige 2D transformaties 4.2 2D transformaties van coordinaten 4.3 Samengestelde 2D transformaties
E N D
Computer Graphics Presentatie titel Technische Informatica www.hogeschool-rotterdam.nl/cmi Rotterdam, 00 januari 2007
Les 3 • Les 3 gaat over de hoofdstukken: • 4.1 Meetkundige 2D transformaties • 4.2 2D transformaties van coordinaten • 4.3 Samengestelde 2D transformaties • 4.4 Voorbeeld 2D transformaties • 5.1 Window –viewport transformatie • 5.2 Afbreken van punten (clipping) • 5.3 Afbreken van lijnen • 5.5 Grafische pijplijn in 2D
Inleiding • Fundamenteel voor grafische systemen is de mogelijkheid om objecten in de ruimte te manipuleren • Dit noemt men transformatie • Bijv omzetten naar een ander coordinatensysteem • 2 typen • Meetkundige transformatie • Coordinaten transformatie • Bijv. bij een auto die beweegt zijn er 2 standpunten (coordiatenstelsel auto of wereld gebruiken)
Inleiding • Ditgedeeltegaat over transformaties in de 2-dimensionale ruimte • Basis transformaties • Translatie (translation) • Rotatie (rotation) • Verschaling (scaling) • En allecombinatieshiervan
Meetkundige transformaties • Een object Obj in hetvlakkanwordenbeschouwdalseenverzamelingpunten • Iederobjectpunt P heeftcoordinaat (x,y) en het object is de som van allecoordinaatpunten (zie fig 4-1)
Meetkundige transformaties • Alshet object beweegtnaareennieuwepositiehebben we eennieuw object Obj’ • Allepunten P’ kunnenbepaaldwordenuit de orginelepunten P door eenmeetkundigetransformatie
Translatie • Bijeentranslatiewordteen object verplaatst over eengegevenafstand van de orginelepositie • De verplaatsing is gegeven door de vector v=txI + tyJ • Hetnieuwe punt P’(x’,y’) kangevondenworden door de transformatieTvvanuit P(x,y) (zie fig 4-2) • P’= Tv(P)
Translatie • Met x’= x+ tx • En y’= y +ty
Rotatie om de oorsprong • Bijeenrotatiewordthet object geroteerd over eenhoekθom de oorsprong • De afspraak is dat de rotatierichtingtegen de klok in gaatalsθ positief is (zie fig 4-3) • De transformatie is van rotatie Rθ is: • P’= Rθ(P) • Met x’=xcos(θ) –ysin(θ) • En y’=xsin(θ) + ycos(θ)
Verschalen t.o.v. oorsprong • Verschalen is eenproces van uitbreiden of verkleinen van de dimensies van een object • De verschalingsconstantenzijn: • sxvoor de x-richting • syvoor de y-richting • >1 vergroting • < 1 verkleining • De verschalingstransformatieSsx,sywordtgegeven door: P’= Ssx,sy(P) • Met x’= sxx • En y’= syy ( zie fig 4-4)
Verschalen t.o.v. oorsprong • Het punt P’iseenanderepositiegekoment.o.v de oorsprong (die blijftalsenige op zijnplaats) • In fig 4-4 zijn de verschalingsfactoren: sx =2 en sy =1/2 • Alszegelijkzijnnoemt men dithomogeen • Alssx >1 is vergroting • Alssx <1 is verkleining
Spiegeling om een as • Als de x of y-as gebruiktwordtalsspiegelheefthet object eenspiegelbeeld • Hetspiegelbeeldligt op dezelfdeafstandalshet object ( zie fig 4-5) • De transformatievoor de x-as is gegeven door: P’= MX(P) • Met x’= x en y’=-y
Spiegeling om een as • Evenzospiegelingom de y-as geeft: P’= My(P) • Met x’= -x en y’=y • Merk op dat • Mx=S 1,-1 en My=S-1,1 • De spiegeltransfomatieszijnspecialegevallen van verschaling
Inverse meetkundige transformaties • Iederetransformatieheefteen inverse welkebeschrevenwordt door de tegengesteldeoperatie • Translatie: Tv-1 = T-vtegengestelderichting • Rotatie: Rθ-1 = R- θtegengestelderichting • Verschalen: Ssx,sy-1 = S1/sx,1/sy • Spiegeling: Mx-1 = Mx en My-1 = My
Coordinaten transformatie • In fig 4-6 wordtbeschreven hoe de transformatie van eencoordinatensysteemplaatsvindt • Punt P(,x,y) van stelsel (x,y) is hetzelfde punt P(x’,y’) van stelsel (x’,y’)
Coordinaten transformatie • Translatie • Alshetcoordinaatsysteem (x,y) verplaatstwordtnaareennieuwepositie met verplaatsingv=txI+tyJmet transformatieT̅v • Dan is: (x’,y’)=T̅v (x,y) • Met x’=x-tx en y’= y-ty • OmhetverschilaantegeventussengeometrischetransformatieTv en coordinaattransformatieT̅vwordteenstreepjegebruikt
Coordinaten transformatie • Rotatie • Alshetcoordinaatsysteem (x,y) geroteerdwordtom de oorsprong (zie fig 4-7) over eenhoekθworden de nieuwecoordinatenvan een punt in beidesystemen met transformatieR̅θ: • (x’,y’)=R̅θ (x,y) • Met x’=xcos(θ)+ysin(θ) • y’= -xsin(θ)+ycos(θ)
Coordinaten transformatie • Verschalent.o.v. de oorsprong • Bijverschaling van eencoordinaatsysteemblijven de oorsprong en de assengelijk • Alleen de eenheden van die as veranderen • Hetnieuwesysteemheefteentransformatieondergaan van : S̅sx,sy De transformatie is: • (x’,y’) = S̅sx,sy (x,y) met : • x’= (1/sx)x en y’= (1/sy)y • Fig 4-8 geef de coordinaat verschaling van sx = 2 en sy = ½
Coordinaten transformatie • Spiegelingomeen as • Alshetnieuwecoordinaatsysteemverkregenwordt door hetoudecoordinaatsysteemtespiegelenom de x of y-as danwordt: • De relatietussen de coordinatengegeven door de transformatiesM̅x en M̅y • Voor spiegeling om de x-as zie fig 4-9a en dan is (x’,y’) = M̅x(x,y) met: • x’=x en y’=-y
Coordinaten transformatie • Voorspiegelingom de y-as zie fig 4-9b geldt: • (x’,y’) = M̅y(x,y) met: • x’=-x en y’=y • Spiegelingverandert de orientatie van hetcoordinaatsysteem
Coordinaten transformatie • Inverse CoordinaatTransformaties • Iederetransformatieheefteen inverse door de tegengesteldetransformatieuittevoeren • Translatie: v-1 = -v tegengestelde richting • Rotatie: -1= -θ tegengestelde richting • Verschalen: S̅sx,sy-1 = S̅1/sx,1/sy • Spiegelen: M̅x-1=M̅x en M̅y-1=M̅y
Samengestelde transformaties • Meercomplexetransformatieswordengebouwdvanuit de basis transformaties met compositie van functies( zie appendix 1) • Bijv. Rotatieomeenander punt dan de oorsprong of spiegelingomandereassen • Voorbeeld 1: • Vergroting van een object terwijlhetcentrum vast staat (zie fig 4-10) • Hetmeetkundigecentrum is C(h,k) (fig 4-10a) en de vergrotingsfactor is s >1 • De volgendetransformatieswordendanuitgevoerd:
Samengestelde transformaties • Translatienaar de oorsprong ( fig 4-10b) • Verschalen van het object t.o.v. de oorsprong (fig 4-10c) • Translatieterugnaarhetcentrum C (fig 4-10d) • De vereistetransformatie: Ss,c=Tv.Ss,s. Tv-1 • Met v= v=hI + kJ
Matrix beschrijving van transformaties • De transformatieskunnenookals matrices wordenvoorgesteld: • Meetkundig: Coordinaat
Matrix beschrijving van transformaties • De translatietransformatiekannietuitgedruktworden in een 2*2 matrix • x’= x+ tx en y’= y +tyAnders noteren: • x’= 1.x+ 0.y+ tx y’= 0.x+ 1.y +ty • In matrixvorm is diteen 3*2 matrix: • Jekunthiermeegeen matrix vermeniguldi -gingenmaken (moetvierkantzijn)
Matrix beschrijving van transformaties • Daaromhomogene matrices omeen 3*3 matrix teverkrijgen (zie appendix 2) • x’= 1.x+ 0.y+ tx y’= 0.x+ 1.y +ty • 1 =0.x+ 0.y +1 • Met matrices
Matrix beschrijving van transformaties • Opeenvolging van matrices • Het voordeel is dat we nu complexetransformatieskunnenmaken met de basistransformaties • De resulterende matrix heet de samengesteldetransformatiematrix( CTM) • De composite van matrices is gelijkaanmatrixvermenigvuldiging (appendix 1) • We moetenalle matrices in een 3*3homogenecoordinaten matrix brengen (appendix 2) • De 2*2 matrix moetuitgebreidworden met een 3e rij en kolom
Matrix beschrijving van transformaties • 3e rij: [0 0 1] ; 3e kolom • De matrix wordtdan: • Voorb 2: Bepaal de homogene matrix voorb 1 • Ss,C= Tv.Ss,s.Tv-1
Matrix beschrijving van transformaties • Hieruitvolgt: • Matrix notaties • In veel computer graphics wordteenanderenotatiegebruikt , nl. met rij-vectoren • Gelijkaanvoorbeeld 2
Window-Viewport transformatie • We zien meestal een klein gedeelte van een groter geheel met een camera • Objecten worden geplaatst in Wereld Coordinaten Systeem (WCS) • Een rechhoekigwindow selecteert de scene (zie fig 5-1) • Als de camera een verplaatsing ondergaat spreken we van een ViewingCoordinaten Systeem (VCS) • Een device onafhankelijk display werkt met een Genormaliseerd DeviceCoordinaten Systeem (NDCS)
Window-Viewport transformatie • Dit is een display van 1*1eenheid met de oorsprong in de linker onderhoek (virtueel) • Eenrechthoekigeviewport in NDCS geefteengebiedaanwat op het display wordtgetoond
Window-Viewport transformatie • Hetprocesom object coordinaten in WCS omtezettennaar NDCS heetWindow-ViewportTransformatie of NormalisatieTransformatie • Hetprocesdat de NDSC afbeeldtnaarhetdis- crete device heetWorkstation Transformatie • Ervindteen 2e Window-Viewporttransformatieplaats • Samenvormenze de Viewing Transformatie
Window-Viewport transformatie • Naast de transformatiekanooknogafbrekenplaatsvindenals het object zichbuiten het window bevindt (of scherm of gedeeltelijk) • In fig 5-1 is eengedeelte van de berg tezien • Afbrekenelimineert het niet-zichtbaredeel • Afbrekenkan in WCS,VCS,NDCS • Het window heetoveral het afbreek window (clipping window)
Window-Viewport transformatie • Een window is gedefinieerd door 4 wereldcoordinaten: • wxmin, wxmax, wymin, wymax(zie fig 5-2)
Window-Viewport transformatie • Tevens door 4 genormaliseerde device coordinaten: vxmin,vxmax,uymin, ymax • Converteren van wereld –device, waarbijeen punt gelijkblijft: • Nodig is: en • Hieruitvolgt:
Window-Viewport transformatie • De 8 coordinaatwaardenzijnconstanten • vx,vy,wx,wyzijnvariabelen. We kunnen die d.m.v . eentransformatieuitdrukken. • N is een matrix die door eentranslatie – verschaling en weereentranslatieterugverkregenwordt ( zie fig 5-2)
Window-Viewport transformatie • Alsde verschalingsconstanteverschillendzijndantreedtvervorming op n.leenvierkant in het window wordteenrechthoek in de viewport • Nu alsverschalinggeschreven:
Afbreken van punten • Voorpuntendienen de volgendeongelijkhedentewordenbepaaald • xmin ≤ x ≤ xmax en ymin ≤ y ≤ ymax • Met xmin,xmax,ymin,ymax de grenzen van het window waar het afbrekenplaatsvindt • Een punt (x,y) ligtbinnen het window als de ongelijkheidwaar is
Afbreken van lijnen • Lijnen die geensnijpunthebben met het clipping window zijn of buiten of binnen het window • Eenlijn die weleensnijpuntheeftwordtverdeeld in lijnsegmentenbinnen of buiten • Erzijn 3 algoritmesom efficient de relatietebepalen of eenlijnbinnen of buiten het window is n.l: • Cohen-Sutherland • Midpoint onderverdeling • Liang-Barsky • Alleen 1 wordtbehandeld
Afbreken van punten • Cohen-Sutherland • 2 fasen: • Indentificeer de lijnen die het window snijden en of zeafgebrokenmoetenworden • Het uitvoeren van de afbreking • Eenlijnvalt in 1 van de volgendeafbreekcategorieen: • Zichtbaar: beideeindpunten van de lijnliggenbinnen het window
Afbreken van punten • Nietzichtbaar: De lijnligtbuiten het window Als de lijn van (x1,y1) tot (x2,y2) voldoetaan de volgendeongelijkheden: x1,x2 > xmax y1,y2 > ymax x1,x2 > xminy1,y2 > xmin • Afbreekkandidaat: De lijnvaltniet in categorie 1 en/of 2 • In fig 5-3 : Categorie 1: Lijn AB Categorie 2: Lijn CD en EF Categorie 3: Lijn GH en IJ en KL
Afbreken van punten • Het algoritmeheefteenefficiente procedure om de categorieentebepalen: • Ken een 4-bit code toe aaniedereindpunt van eenlijn De code wordtbepaald door tekijken in welk van de 9 gebieden het eindpuntligt:
Afbreken van punten • Start met het linkse bit, die wordt 1 of 0 overeenkomstigonderstaand schema: bit 1:eindpunt=boven het window=teken(y-ymax) bit 2:eindpunt=onder het window=teken(ymin-y) bit 3:eindpunt=rechts van window=teken(x-xmax) bit 4:eindpunt=links van window=teken(xmin-x) • Met de afspraakdat: teken(a)=1 als a positief teken(a)=0 als a negatief
Afbreken van punten • Eenlijn is zichtbaaralsbeideeindpunten code 0000 hebben en nietzichtbaaralsbitsgewijzelogischeAND van de eindpuntcodes is niet0000 en eenkandidaatvoorafbrekenals de code 0000 is • Bijeenlijn van categorie 3 moeten de snijpunten met de grenzen van het window bepaaldworden (zie fig 5-4)