1 / 57

Presentatie titel

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

sunila
Download Presentation

Presentatie titel

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computer Graphics Presentatie titel Technische Informatica www.hogeschool-rotterdam.nl/cmi Rotterdam, 00 januari 2007

  2. 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

  3. 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)

  4. Inleiding • Ditgedeeltegaat over transformaties in de 2-dimensionale ruimte • Basis transformaties • Translatie (translation) • Rotatie (rotation) • Verschaling (scaling) • En allecombinatieshiervan

  5. Meetkundige transformaties • Een object Obj in hetvlakkanwordenbeschouwdalseenverzamelingpunten • Iederobjectpunt P heeftcoordinaat (x,y) en het object is de som van allecoordinaatpunten (zie fig 4-1)

  6. Meetkundige transformaties • Alshet object beweegtnaareennieuwepositiehebben we eennieuw object Obj’ • Allepunten P’ kunnenbepaaldwordenuit de orginelepunten P door eenmeetkundigetransformatie

  7. 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)

  8. Translatie • Met x’= x+ tx • En y’= y +ty

  9. 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(θ)

  10. Rotatie om de oorsprong

  11. 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)

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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’)

  17. 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

  18. 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(θ)

  19. 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 = ½

  20. Coordinaten transformatie

  21. 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

  22. 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

  23. 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

  24. 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:

  25. Samengestelde transformaties

  26. 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

  27. Matrix beschrijving van transformaties • De transformatieskunnenookals matrices wordenvoorgesteld: • Meetkundig: Coordinaat

  28. 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)

  29. 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

  30. 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

  31. 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

  32. Matrix beschrijving van transformaties • Hieruitvolgt: • Matrix notaties • In veel computer graphics wordteenanderenotatiegebruikt , nl. met rij-vectoren • Gelijkaanvoorbeeld 2

  33. 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)

  34. 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

  35. 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

  36. 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)

  37. Window-Viewport transformatie • Een window is gedefinieerd door 4 wereldcoordinaten: • wxmin, wxmax, wymin, wymax(zie fig 5-2)

  38. Window-Viewport transformatie • Tevens door 4 genormaliseerde device coordinaten: vxmin,vxmax,uymin, ymax • Converteren van wereld –device, waarbijeen punt gelijkblijft: • Nodig is: en • Hieruitvolgt:

  39. 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)

  40. Window-Viewport transformatie • Alsde verschalingsconstanteverschillendzijndantreedtvervorming op n.leenvierkant in het window wordteenrechthoek in de viewport • Nu alsverschalinggeschreven:

  41. 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

  42. 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

  43. 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

  44. 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

  45. Afbreken van punten

  46. 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:

  47. 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

  48. 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)

  49. Afbreken van punten

More Related