Ì ÒØ Ñ Ò ØÓÖ Ö fi - Lunds Tekniska Högskola

Lunds universitet/Lunds tekniska högskola
Datavetenskap
Tentamen i Datorgrak
30 maj 2001, 813
De 6 uppgifterna är värda 10 poäng vardera.
Inga hjälpmedel.
1. (a) Låt klippfönstret ha hörnkoordinater: (0,0), (10,0), (0,10), (10,10). Visa
hur Sutherland-Hodgemans algoritm klipper ett polygon vars hörn är:
v1
= ( 2 6)
;
; v2
= (3 11)
;
; v3
= (8 7)
;
; v4
= (2 3)
;
(b) Använd DDA-algoritmen (eller Bresenhams algoritm) för att rastrera de
linjesegment av polygonet som inte klippts i (a).
Låt pixlar representeras av heltalskoordinater, dvs centrerade i punkterna
(1,1) till (10,10).
2. (a) Beskriv vilka vyer (ramar) som ingår i en vypipeline. Motivera varför de
nns med.
(b) En tvådimensionell instanstransform består av en skalning, därefter en
rotation, och slutligen en translation.
Skalningen är likformig: sx = 1=2; sy = 1=2.
Rotationen är 90o (motsols).
Translationen är 2 enheter vänster (dvs, 2 i x-led).
Beräkna den sammansatta transformmatrisen och applicera den på en triangel med hörn i (0; 0); (2; 4); (3; 1). Räkna fram triangelns hörnkoordinater efter instanstransformen.
3. (a) Vi använder Phongs modell. Hur beror reektionen från en idealt matt
yta av vinkeln mellan den infallande ljusstrålen och ytans normal? Hur
beror den av observatören uppfattade belysningen av vinkeln mellan ytans
normal och synlinjen till observatören?
Antag att ytan är blank (spekulär) och att vinkeln mellan infallande ljusstrålen och ytans normal är given. Hur beror då den av observatören uppfattade belysningen av vinkeln mellan ytans normal och synlinjen till observatören?
(b) En triangels hörnpunkter P0 = (0; 0); P1 = (2; 4); P2 = (3; 1) har ljussatts
med I0 = 0:2; I1 = 0:9 resp I2 = 0:5.
Beräkna ljussättningen i punkten P = (2; 2).
4. (a) Beskriv kortfattat följande metoder för eliminering av dolda ytor:
z-buertalgoritmen.
Målaralgoritmen (Painter's algorithm).
Vad är fördelar resp nackdelar med metoderna?
(b) Beskriv hur BSP-träd kan användas i målaralgoritmen. Vad är fördelarna?
Illustrera med exempel.
5. (a) Varför används procedurella metoder i datorgrak?
I ett sköldpaddespråk, låt F betyda ett steg framåt, L vänstersväng 90o
och R högersväng 90o.
Rita det graska objekt som motsvaras av F L F R F R F F L F L F R F .
Vad blir den fraktala dimensionen för kurvan där denna sträng appliceras
rekursivt på varje F ?
(b) Beskriv hur rastertransformer (bitblt-operationer) fungerar och ange några
tillämpningar.
6. (a) En vektor har ändpunkterna (xi ; yi; zi ) och (xi ; yi ; zi ) + u (x; y; z ).
Koordinatsystemet är högerhänt, och zi och u z är negativa.
Var projiceras vektorns ändpunkter om vi tillämpar perspektivprojektion
med projektionspunkt z = 1 (på z -axeln) och projektionsplan i origo?
Givet en mängd vektorer med olika xi ; yi ; zi och u, men samma x; y; z ,
i vilken punkt kommer alla projektionernas förlängningar att skära varandra?
(b) Varför är parametriska kurvor och ytor viktiga i datorgrak?
Vad är NURBS? Varför hanteras dessa kurvor korrekt i perspektivseende?