Technische Informatica

Slides:



Advertisements
Verwante presentaties
Sudoku puzzels: hoe los je ze op en hoe maak je ze?
Advertisements

Laurens van der Maaten IKAT / ROB
HET BEREKENEN VAN DE UITGESLAGEN LENGTE BIJ HET KANTEN
Les 2 : MODULE 1 STARRE LICHAMEN
Workshop harde schijf indelen
Hoe teken je een goede grafiek: bovenbouw
Een manier om problemen aan te pakken
presentatie voor versie 3.0
Coördinaten Transformaties
Labo 03 Tree: Parent Child Mesh
Basis begrippen.
Tabellen Metingen schrijf je meestal op in een tabel
Les 20 Hoekgrootte.
Het prijs- of marktmechanisme I
vwo A/C Samenvatting Hoofdstuk 2
Project D2: Kempenland Sander Verkerk Christian Vleugels
Project D2: Kempenland Sander Verkerk Jeffrey van de Glind
Newton - VWO Energie en beweging Samenvatting.
Gereedschapskist vlakke meetkunde
Rambles Barcelona 19 mei 2011.
Onderzoeksvragen als uitgangspunt bij lineaire algebra
Inleiding Adaptieve Systemen
vwo B Samenvatting Hoofdstuk 1
vwo C Samenvatting Hoofdstuk 14
vwo C Samenvatting Hoofdstuk 12
Omtrekshoeken Stelling van de constante hoek:
De grafiek van een lineair verband is ALTIJD een rechte lijn.
Assenstelsels en het plotten van Functies in LOGO
Samenvatting Wet van Coulomb Elektrisch veld Wet van Gauss.
Oplossen van een doolhof
Les 12 : MODULE 1 Snedekrachten (3)
Relativiteitstheorie (4)
1 Complexiteit Bij motion planning is er sprake van drie typen van complexiteit –Complexiteit van de obstakels (aantal, aantal hoekpunten, algebraische.
Didier Collard en Simon Koolstra. Inhoud  Wat is raytracing?  Waarom raytracing?  De scne  Rayintersectie  Licht  Reflectie en breking  Voorbeelden.
22 De wet van Gauss H o o f d s t u k Elektrische flux
Snede van Ritter Herman Ootes.
ribwis1 Toegepaste wiskunde – Exponentiele functies Lesweek 5
havo A Samenvatting Hoofdstuk 3
Experimenteel onderzoek
H2 Lineaire Verbanden.
Hoofdstuk 1 Roosterpapier, hoekpunten, zijden, diagonalen
Technische Informatica
Presentatie titel Rotterdam, 00 januari 2007 Computer Vision Technische Informatica
Presentatie titel Rotterdam, 00 januari 2007 Computer Graphics Technische Informatica
Presentatie titel Rotterdam, 00 januari 2007 Computer Vision Technische Informatica
Presentatie titel Rotterdam, 00 januari 2007 Computer Graphics Technische Informatica
Gereedschapskist vlakke meetkunde
Presentatie titel Rotterdam, 00 januari 2007 Computer Vision Technische Informatica
Presentatie titel Rotterdam, 00 januari 2007 Computer Vision Technische Informatica
Presentatie titel Rotterdam, 00 januari 2007 Computer Graphics Technische Informatica
CONTROLESTRUCTUREN (DEEL 1)
Presentatie titel Rotterdam, 00 januari 2007 Computer Vision Technische Informatica
Presentatie titel Rotterdam, 00 januari 2007 Computer Vision Technische Informatica
Snijpunt bepalen. Lijn p en lijn q snijden elkaar. Wat zijn de coördinaten van het snijpunt ?
‘Vormleer: punten, lijnen, vlakken, hoeken’
Projectie en stelling van thales
Herhalingsoefeningen Variabelen - voorwaarden. Flying banner  Toon een tekst op positie x: -2.0 en y: 0 (dat is links buiten het beeldscherm)  Laat.
Isometrie tekenen Dal\RvP 2013 Pixel Art.
Meetkunde 5de leerjaar.
Metend rekenen 5de leerjaar.
Hoofdstuk 1, 2 en 3 Toegepaste Mechanica deel 1
Kan je zelf een geschikte schaalverdeling maken
Youden Analyse.
Transformaties van grafieken
Examentraining.
De grafiek van een lineair verband is ALTIJD een rechte lijn.
Kan je zelf een geschikte schaalverdeling maken
Leren programmeren met Scratch
De natuurlijke getallen op een getallenas en in een assenstelsel
Meetkunde Verzamelingen Klas 8.
Transcript van de presentatie:

Technische Informatica 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 Dit gedeelte gaat over transformaties in de 2-dimensionale ruimte Basis transformaties Translatie (translation) Rotatie (rotation) Verschaling (scaling) En alle combinaties hiervan

Meetkundige transformaties Een object Obj in het vlak kan worden beschouwd als een verzameling punten Ieder objectpunt P heeft coordinaat (x,y) en het object is de som van alle coordinaatpunten (zie fig 4-1)

Meetkundige transformaties Als het object beweegt naar een nieuwe positie hebben we een nieuw object Obj’ Alle punten P’ kunnen bepaald worden uit de orginele punten P door een meetkundige transformatie

Translatie Bij een translatie wordt een object verplaatst over een gegeven afstand van de orginele positie De verplaatsing is gegeven door de vector v=txI + tyJ Het nieuwe punt P’(x’,y’) kan gevonden worden door de transformatie Tv vanuit P(x,y) (zie fig 4-2) P’= Tv (P)

Translatie Met x’= x+ tx En y’= y +ty

Rotatie om de oorsprong Bij een rotatie wordt het object geroteerd over een hoek θ om de oorsprong De afspraak is dat de rotatierichting tegen de klok in gaat als θ positief is (zie fig 4-3) De transformatie is van rotatie Rθ is: P’= Rθ(P) Met x’=xcos (θ) –ysin(θ) En y’=xsin(θ) + ycos(θ)

Rotatie om de oorsprong

Verschalen t.o.v. oorsprong Verschalen is een proces van uitbreiden of verkleinen van de dimensies van een object De verschalingsconstanten zijn: sx voor de x-richting sy voor de y-richting >1 vergroting < 1 verkleining De verschalingstransformatie Ssx,sy wordt gegeven door: P’= Ssx,sy(P) Met x’= sx x En y’= sy y ( zie fig 4-4)

Verschalen t.o.v. oorsprong Het punt P’is een andere positie gekomen t.o.v de oorsprong (die blijft als enige op zijn plaats) In fig 4-4 zijn de verschalingsfactoren: sx =2 en sy =1/2 Als ze gelijk zijn noemt men dit homogeen Als sx >1 is vergroting Als sx <1 is verkleining

Spiegeling om een as Als de x of y-as gebruikt wordt als spiegel heeft het object een spiegelbeeld Het spiegelbeeld ligt op dezelfde afstand als het object ( zie fig 4-5) De transformatie voor de x-as is gegeven door: P’= MX(P) Met x’= x en y’=-y

Spiegeling om een as Evenzo spiegeling om 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 spiegel transfomaties zijn speciale gevallen van verschaling

Inverse meetkundige transformaties Iedere transformatie heeft een inverse welke beschreven wordt door de tegengestelde operatie Translatie: Tv-1 = T-v tegengestelde richting Rotatie: Rθ-1 = R- θ tegengestelde richting Verschalen: Ssx,sy-1 = S 1/sx,1/sy Spiegeling: Mx-1 = Mx en My-1 = My

Coordinaten transformatie In fig 4-6 wordt beschreven hoe de transformatie van een coordinatensysteem plaats vindt Punt P(,x,y) van stelsel (x,y) is hetzelfde punt P(x’,y’) van stelsel (x’,y’)

Coordinaten transformatie Translatie Als het coordinaat systeem (x,y) verplaatst wordt naar een nieuwe positie met verplaatsing v=txI +tyJ met transformatie T̅v Dan is: (x’,y’)= T̅v (x,y) Met x’=x-tx en y’= y-ty Om het verschil aan te geven tussen geometrische transformatie Tv en coordinaat transformatie T̅v wordt een streepje gebruikt

Coordinaten transformatie Rotatie Als het coordinaat systeem (x,y) geroteerd wordt om de oorsprong (zie fig 4-7) over een hoek θ worden de nieuwe coordinaten van een punt in beide systemen met transformatie R̅θ : (x’,y’)= R̅θ (x,y) Met x’=xcos(θ)+ysin(θ) y’= -xsin(θ)+ycos(θ)

Coordinaten transformatie Verschalen t.o.v. de oorsprong Bij verschaling van een coordinaatsysteem blijven de oorsprong en de assen gelijk Alleen de eenheden van die as veranderen Het nieuwe systeem heeft een transformatie ondergaan 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

Coordinaten transformatie Spiegeling om een as Als het nieuwe coordinaatsysteem verkregen wordt door het oude coordinaat systeem te spiegelen om de x of y-as dan wordt: De relatie tussen de coordinaten gegeven door de transformaties M̅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 Voor spiegeling om de y-as zie fig 4-9b geldt: (x’,y’) = M̅y(x,y) met: x’=-x en y’=y Spiegeling verandert de orientatie van het coordinaatsysteem

Coordinaten transformatie Inverse Coordinaat Transformaties Iedere transformatie heeft een inverse door de tegengestelde transformatie uit te voeren 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 Meer complexe transformaties worden gebouwd vanuit de basis transformaties met compositie van functies ( zie appendix 1) Bijv. Rotatie om een ander punt dan de oorsprong of spiegeling om andere assen Voorbeeld 1: Vergroting van een object terwijl het centrum vast staat (zie fig 4-10) Het meetkundige centrum is C(h,k) (fig 4-10a) en de vergrotingsfactor is s >1 De volgende transformaties worden dan uitgevoerd:

Samengestelde transformaties

Samengestelde transformaties Translatie naar de oorsprong ( fig 4-10b) Verschalen van het object t.o.v. de oorsprong (fig 4-10c) Translatie terug naar het centrum C (fig 4-10d) De vereiste transformatie: Ss,c=Tv.Ss,s. Tv-1 Met v= v=hI + kJ

Matrix beschrijving van transformaties De transformaties kunnen ook als matrices worden voorgesteld: Meetkundig: Coordinaat

Matrix beschrijving van transformaties De translatie transformatie kan niet uitgedrukt worden in een 2*2 matrix x’= x+ tx en y’= y +ty Anders noteren: x’= 1.x+ 0.y+ tx y’= 0.x+ 1.y +ty In matrixvorm is dit een 3*2 matrix: Je kunt hiermee geen matrix vermeniguldi -gingen maken (moet vierkant zijn)

Matrix beschrijving van transformaties Daarom homogene matrices om een 3*3 matrix te verkrijgen (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 complexe transformaties kunnen maken met de basistransformaties De resulterende matrix heet de samengestelde transformatiematrix( CTM) De composite van matrices is gelijk aan matrixvermenigvuldiging (appendix 1) We moeten alle matrices in een 3*3 homogene coordinaten matrix brengen (appendix 2) De 2*2 matrix moet uitgebreid worden met een 3e rij en kolom

Matrix beschrijving van transformaties 3e rij: [0 0 1] ; 3e kolom De matrix wordt dan: Voorb 2: Bepaal de homogene matrix voorb 1 Ss,C= Tv.Ss,s.Tv-1

Matrix beschrijving van transformaties Hieruit volgt: Matrix notaties In veel computer graphics wordt een andere notatie gebruikt , nl. met rij-vectoren Gelijk aan voorbeeld 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 rechhoekig window selecteert de scene (zie fig 5-1) Als de camera een verplaatsing ondergaat spreken we van een Viewing Coordinaten Systeem (VCS) Een device onafhankelijk display werkt met een Genormaliseerd Device Coordinaten Systeem (NDCS)

Window-Viewport transformatie Dit is een display van 1*1 eenheid met de oorsprong in de linker onderhoek (virtueel) Een rechthoekige viewport in NDCS geeft een gebied aan wat op het display wordt getoond

Window-Viewport transformatie Het proces om object coordinaten in WCS om te zetten naar NDCS heet Window-Viewport Transformatie of Normalisatie Transformatie Het proces dat de NDSC afbeeldt naar het dis- crete device heet Workstation Transformatie Er vindt een 2e Window-Viewport transformatie plaats Samen vormen ze de Viewing Transformatie

Window-Viewport transformatie Naast de transformatie kan ook nog afbreken plaats vinden als het object zich buiten het window bevindt (of scherm of gedeeltelijk) In fig 5-1 is een gedeelte van de berg te zien Afbreken elimineert het niet-zichtbare deel Afbreken kan in WCS,VCS,NDCS Het window heet overal 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, waarbij een punt gelijk blijft: Nodig is: en Hieruit volgt:

Window-Viewport transformatie De 8 coordinaatwaarden zijn constanten vx,vy,wx,wy zijn variabelen. We kunnen die d.m.v . een transformatie uitdrukken. N is een matrix die door een translatie – verschaling en weer een translatie terug verkregen wordt ( zie fig 5-2)

Window-Viewport transformatie Als de verschalingsconstante verschillend zijn dan treedt vervorming op n.l een vierkant in het window wordt een rechthoek in de viewport Nu als verschaling geschreven:

Afbreken van punten Voor punten dienen de volgende ongelijkheden te worden bepaaald xmin ≤ x ≤ xmax en ymin ≤ y ≤ ymax Met xmin,xmax ,ymin,ymax de grenzen van het window waar het afbreken plaats vindt Een punt (x,y) ligt binnen het window als de ongelijkheid waar is

Afbreken van lijnen Lijnen die geen snijpunt hebben met het clipping window zijn of buiten of binnen het window Een lijn die wel een snijpunt heeft wordt verdeeld in lijnsegmenten binnen of buiten Er zijn 3 algoritmes om efficient de relatie te bepalen of een lijn binnen of buiten het window is n.l: Cohen-Sutherland Midpoint onderverdeling Liang-Barsky Alleen 1 wordt behandeld

Afbreken van punten Cohen-Sutherland 2 fasen: Indentificeer de lijnen die het window snijden en of ze afgebroken moeten worden Het uitvoeren van de afbreking Een lijn valt in 1 van de volgende afbreek categorieen: Zichtbaar: beide eindpunten van de lijn liggen binnen het window

Afbreken van punten Niet zichtbaar: De lijn ligt buiten het window Als de lijn van (x1,y1) tot (x2,y2) voldoet aan de volgende ongelijkheden: x1,x2 > xmax y1,y2 > ymax x1,x2 > xmin y1,y2 > xmin Afbreek kandidaat: De lijn valt niet 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

Afbreken van punten Het algoritme heeft een efficiente procedure om de categorieen te bepalen: Ken een 4-bit code toe aan ieder eindpunt van een lijn De code wordt bepaald door te kijken in welk van de 9 gebieden het eindpunt ligt:

Afbreken van punten Start met het linkse bit, die wordt 1 of 0 overeenkomstig onderstaand 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 afspraak dat: teken(a)=1 als a positief teken(a)=0 als a negatief

Afbreken van punten Een lijn is zichtbaar als beide eindpunten code 0000 hebben en niet zichtbaar als bitsgewijze logische AND van de eindpuntcodes is niet 0000 en een kandidaat voor afbreken als de code 0000 is Bij een lijn van categorie 3 moeten de snijpunten met de grenzen van het window bepaald worden (zie fig 5-4)

Afbreken van punten

Afbreken van punten We kiezen een eindpunt van een lijn(x1,y1) buiten het window (code ≠ 0000) Daarna selecteren we een verlengde grenslijn Deze lijnen zijn kandidaat als snijpunt met een lijn , waarbij de toestand van de region bit verandert van 1 naar 0 (zie snijpunt D’ in fig 5-4) Dit betekent: Als bit1=1 snijpunt met lijn y=ymax Als bit2=1 snijpunt met lijn y=ymin Als bit3=1 snijpunt met lijn x=xmax Als bit4=1 snijpunt met lijn x=xmin

Afbreken van punten Bekijk de lijn CD in fig 5-4 Als eindpunt C is gekozen dan wordt de lijn y=ymin gekozen als snijpunt (C-code=0100) Als eindpunt D is gekozen dan wordt de lijn y=ymax of x=xmax gekozen als snijpunt (omdat D-code =1010) De coordinaten van het snijpunt met de grenslijn zijn: Als de grenslijn vertikaal is

Afbreken van punten Als de grenslijn horizontaal is Met m = (y2-y1)/(x2-x1) de helling van de lijn We vervangen het eindpunt (x1,y1) door het snijpunt (xi,yi) , daarmee het gedeelte buiten het window elimineren Van het nieuwe eindpunt wordt opnieuw de gebiedscode bepaald Opnieuw wordt de categorie bepaald van die lijn

Afbreken van punten Dit iteratief proces wordt beeindigd als alle lijnen afgebroken zijn D.w.z. Ze behoren tot categorie 1 (zichtbaar) of categorie 2 (niet zichtbaar)

De grafische pijplijn (2D) De totale systeem architectuur heet grafische pijplijn De operationele organisatie van een 2D pijplijn is in fig 5-13 gegeven:

De grafische pijplijn (2D) Aan het begin van de pijplijn: object data ( hoekpunten, polygonen) opgeslagen in een applicatie specifieke data-structuur Een grafische applicatie gebruikt systeem subroutines voor : Initialisatie Transformatie, Window-Viewport instelling Kleurenattributen instelling Als een tekenroutine gevraagd om een voorgedefinieerd object te renderen (tekenen) worden de volgende handelingen verricht:

De grafische pijplijn (2D) Het grafisch systeem gaat eerst specifieke Model Transformaties uitvoeren op orginele data (CTM=current transformation matrix) Daarna wordt de Viewing Transformatie uitgevoerd van de bestaande window en viewport instellingen Als laatste wordt de scanconversie uitgevoerd om de pixels te plaatsen in het framebuffer met de specifieke kleurenattribuut