LØSNINGSANTYDNING EKSAMEN

Download Report

Transcript LØSNINGSANTYDNING EKSAMEN

Universitetet i Agder Fakultet for teknologi og realfag

LØSNINGSANTYDNING EKSAMEN

Emnekode: Emnenavn:

Dato: Varighet: Antall sider inkl. forside Tillatte hjelpemidler: Merknader:

DAT200 Grafisk Databehandling

15. desember 2010 0900 - 1300 8 Skrivesaker Oppgavenes vektning er angitt i overskrift på hver oppgave.

OPPGAVE (12%)

a) b) c) d) NB: Du får + 1 poeng for riktig svar, - ½ poeng for feil svar.

(Skriv besvarelsen inn på eget ark sammen med resten av besvarelsen.) Angi om du er enig(Ja) eller uenig(Nei) i følgende utsagn: ”Raster Scan” skjermen er den mest utbredte skjermtypen i dag blant annet grunnet sin gode evne til å tegne fylte områder.

To rotasjoner i rommet (3D) er alltid kommutative.

Ja X At to transformasjoner er kommutative vil si at sluttresultatet er uavhengig av hvilken transformasjon som utføres først.

Sutherland-Hodgman sin polygonklippingsalgoritme kan kun anvendes for konkave klippeområder.

X e) f) g) h) i) j) k) l) Fordelen med C vannmotstand.

1 kontinuitet i forhold til G 1 kontinuitet er at kurven blir glattere og får bedre egenskaper i forhold til f. eks luft- og Et mindre vindu vil medføre at detaljer trer klarere frem i en ”viewport” (skjermport) med fast størrelse.

Et matt materiale har speilende (”Specular”) refleksjon over et mindre område enn et blankt materiale.

En isometrisk projeksjon har projeksjonsstråler som står normalt på projeksjonsplanet.

X Ved bruk av ”ray-casting” kan man gjennomføre fjerning av skjulte linjer og flater for en CSG-modell.

X En kubisk Bezier-spline oppfyller det vi på engelsk kaller ”convex hull property” X Ved bruk av fraktaler kan trær, skyer, kystlinjer og fjellkjeder gjengis på en mer naturtro måte enn med euklidsk geometri.

En applikasjonsmodell er et grafisk bilde av renderingsprosessen der man tar hensyn til ”specular”(speilende) refleksjon.

Nei X X X X X

OPPGAVE 2. TRANSFORMASJONER (18

a) De tre matrisene nedenfor representerer en transformasjon av punkter når vi bruker homogene koordinater: 1 0 0 0 0 1 0 0 0 0 1 0 3 3 8 1  0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1        2 0 0 0 0 2 0 0 0 0 1 0 0 0 0 1       Beskriv de transformasjonene som hver matrise(1-3) ovenfor representerer.

(1) Translasjon (3,3,8) (2) Bytte av fortegn på samtlige x-koordinater (3) Skalering med 2 i x- og y-retning b) Sett opp transformasjonen for å skalere med 2 i x-retning og med 3 i y-retning med fastholdingspunkt(”pivot pont”) i (4,2). Du trenger ikke å regne sammen enkeltmatrisene.

     1 0 0 0 1 0 4 2 1      *      2 0 0 0 3 0 0 0 1      *      1 0 0 0 1 0 − − 1 4 2      c) Sett opp transformasjonen for å rotere -30 grader om punktet (-2,3). Du trenger ikke å regne sammen enkeltmatrisene.

     1 0 0 0 1 0 − 3 1 2      * cos( − 30 )   sin( − 0 30 ) − sin( cos( − − 30 30 ) ) 0 0 0 1   *     1 0 0 0 1 0 − 2 1 3     d) For overføring av punktdefinisjoner fra ett koordinatsystem til et annet må man se på de transformasjonene som skal til for å flytte koordinatsystemene slik at de faller sammen. Den transformasjonen som flytter koordinatsystem 1 til 2 vil være den samme som flytter punkter beskrevet i koordinatsystem 2 til koordinatsystem 1. Eventuelt den inverse av å flytte koordinatsystem 2 til koordinatsystem 1.

Ved bruk av et kamera koordinatsystem benytter vi et slikt skifte av koordinatsystem i ”the viewing pipeline”.

OPPGAVE 3. FARGER, SKULTE FLATER OG INTENSITETER (12%)

a) Hva er komplementærfarger? Komplementærfarger er farger som blandet i rett forhold kan produsere hvitt lys.

b) Malerens algoritme for fjerning av skjulte linjer og flater sorterer først flatene med hensyn på avstand til observatør. Deretter males flatene inn i rekkefølge slik at flatene lengst borte males inn først. Algoritmen er både en objekt-presisjons algoritme og en bilde-presisjons algoritme.

c) PHONG-”shading” gjengir speilende refleksjon(”specular reflection”) på en bedre måte enn Gouraud-”shading” da PHONG lineærinterpolerer normalvektorene før intensiteten beregnes mens Gouraud lineærinterpolerer intensiteter over flaten. Gouraud kan dermed miste akkurat det punktet der man får speilende refleksjon, eller eventuelt overdrive effekten dersom man treffer et knutepunkt.

OPPGAVE 4. SPLINES,

a) Octrees er en representasjonsform som baseres seg på å dele inn verdenen i 8 inntil området er ensartet fullt eller tomt. Man fortsetter ned til et minstenivå som kalles for en voxel. To endepunkt A(13,11) og B(4,15) begrenser et linjesegment AB.

b) Linjen mellom de to punktene kan angis slik: x = (1-p)*13+p*4=13-9p y = (1-p)*11+15p=11+4p c) y = 13 => p=1/2 => x = 8,5.

p er element i [0,1] d) Cohen Sutherland sin linjeklippingsalgoritme tildeler koder ved å se på hvordan de to endepunktene ligger lokalisert i forhold til klipperegionen. Ligger punktet til venstre, høyre over eller under får man et 1-tall på en eller flere av de 4 bitene som er tilgjengelige i koden.

e) Perspektivisk projeksjon benyttes alltid når det skal fortas endelige presentasjoner, reklame … da dette etterligner øyets virkemåte. Parallell projeksjon kan benyttes under oppbyggingen av en modell da man slipper å forholde seg til perspektiviske forkortninger. Isometrisk projeksjon (en type parallell projeksjon) er mye brukt innenfor offshore og også i en del enklere dataspill.

OPPGAVE 5. 3D-Studio (12

Vi skal modellere en av delene til en gravemaskin (Se figur til høyre). a) For å modellere et av beltene i gravemaskinen ville jeg laget et sideprofil av beltet og så loftet dette tilsvarende bredden til beltet.

b) For beltet ville jeg laget et sort litt matt materiale (Gummi) mens jeg for grabben ville laget et blankere metallisk materiale.

OPPGAVE 6. Java (2

Vi skal nå laste inn og animere gravemaskinen fra oppgave 5 i Java 3D. Den består av fem deler: Belter og fundament(som er å betrakte som ett objekt som skal stå i ro), gravemaskinhus (som skal kunne rotere), to armer (Arm 1 og Arm2 som skal kunne rotere (se bort fra hydraulikk og sylindre som skaper bevegelsene) og en grabb som skal kunne rotere (se også her bort fra sylindere og hydraulikk som skaper bevegelsen).

a) Branchgroup som viser hvordan treet for gravemaskinen i oppgave 5 kan defineres:

Diagram Branchgroup Gravemaskin Behaviour with user code and data TG Roty (Roterer hele gravemaskinen) Behaviour with user code and data TG RotZ (Roterer Arm 2 med Arm1 og Grabb) Belter og Fundament Gravemaskin hus Arm 2 TG Flytt Grabb og Arm1 ut på Arm 2 Behaviour with user code and data TG RotZ (Roterer Arm 1 med Grabb) TG Flytt Grabb ut på arm1 Arm1 Behaviour with user code and data TG RotZ Grabb b) At Java er plattformuavhengig betyr at programmer i Java kan kjøres på forskjellige hardware plattformer (PC, Mac, Linux) uten å måtte omskrives eller rekompileres. Ulempen er et tap i hastighet.

c) Når vi skriver

implements Mouselistener

i et program betyr det av vi forplikter oss til å skrive de metodene som skal til for å ta seg av et sett av hendelser fra mus, og i praksis betyr det at objektet dermed kan håndtere slike hendelser. Slike konstruksjoner brukes blant annet for å kunne separere hendelser og hendelsesbehandling.

d) XOR-modus er en spesiell tegnemodus som kun gir sann dersom en av de to er sanne. Kan brukes f. eks i tegneprogrammer for å legge en linje oppå eksisterende grafikk midlertidig. Tegnet noe to ganger med XOR-modus kommer original brekgrunn frem igjen.

e) Extend JFrame betyr at man utvider JFrame klassen med noe tilleggsfunksjonalitet og lager en ny klasse basert på denne. Dette er en basis for ovjektorierntert programmering og gjør at vi kan gjenbruke klasser på en effektiv måte.