<< 7. Texture Mapping
|
8. Examination Questions 1998-1999
Werner Van Belle1 - werner@yellowcouch.org, werner.van.belle@gmail.com
1- Programming Technology Lab (PROG)
Department of Computer Science (DINF)
Vrije Universiteit Brussel (VUB); Pleinlaan 2; 1050 Brussel; Belgium
Abstract
:
5 intruiging questions to tickle the mind :-)
Reference:
Werner Van Belle; Examination Questions 1998-1999;
|
1. Beschrijf een algoritme om aan affiene texture mapping te doen. De vlakken kunnen
in alle mogelijke posities liggen.
A: Schrijf neer in pseudocode.
B: Kies 1 loop uit uw algoritme en maak deze expliciet.
C: Herschrijf deze loop door gebruik te maken van een DDA.
2A: Schrijf een algoritme dat aan een gegeven snelheid doorheen een lijn
loopt.
Drawline(x1,y1,x2,y2,v).
(Als v==1 is tekenen we elke pixel die we moeten tekenen. Als v 5 is tekenen we 5 maal minder
pixels dan nodig.)
B: We
willen nu een algoritme dat aan wisselende snelheid doorheen de lijn
loopt.
(vmin is de minimumsnelheid, vmax
is de maximumsnelheid, dv
is de snelheid waarmee de snelheid verhoogt bij elke stap).
C: Zet uw algoritme om naar een DDA
D: Zet om naar fixed point.
3. Een
geluidssample is een reeks van data. Elk woord in een sample beschrijft
de amplitude op een gegeven positie in de tijd. Om een sample van
toonhoogte te veranderen kunnen we de speelsnelheid van de sample
verhogen (bijvoorbeeld: om de toonhoogte van een sample met een octaaf
te verhogen, verdubbelen we de snelheid. Om een octaaf te zakken
halveren we de snelheid.)
Het probleem dat we nu hebben is dat we niet zomaar een sample zijn
‘speelsnelheid’ kunnen verhogen. Een sample wordt steeds
gespeeld aan bijvoorbeeld 44.1 KHz. Dit wil zeggen dat we
softwarematig een sample zullen moeten versnellen of vertragen.
Schrijf
een algoritme dat gegeven een sample en een factor, een nieuwe sample
creeert die de gegeven factor langer is (zonder
interpolatietechnieken te gebruiken). Bijvoorbeeld:
stretchsample(char* sample, long size, float factor)
A: Schrijf uw algoritme door gebruik te maken van floating point aritmetic
B: Converteer uw algoritme naar een DDA.
C: Zet om in fixed point
4. We
willen een algoritme dat gegeven een bitmap, deze bitmap transparant
over een andere bitmap plaatst. Het algoritme heeft nood aan routine
die gegeven 2 pixels een nieuwe gemengde pixel weergeeft. A: Schrijf
deze functie, maak gebruik van een geindexeerd kleurenpalet. B:
Waarschijnlijk bevoordeelt uw kleurenschakering bepaalde kleuren. Is
het mogelijk dit nadeel weg te werken ?
5. We
willen een parabool tekenen. Y=a.X^2+b. Schrijf hiervoor een algoritme
dat gebruikt maakt van een DDA. Schrijf neer in fixed point.