Zk. 9.1.2015 - předtermín

Přednáška pokrývá základy 2D i 3D počítačové grafiky algoritmy pro kreslení a ořezávání v rovině, použití a zobrazování barev, zvětšování barevného rozlišení, kódování obrazu a rastrové grafické formáty, lineární transformace a projekce, metody reprezentace a zobrazování 3D scén, algoritmy výpočtu viditelnosti. Přednáška je doplněna cvičením - výroba modulů do knihovny JaGrLib v jazyce Java. V letním semestru na ni navazují přednášky pro vážnější zájemce Počítačová grafika II (PGR004) a Pokročilá 2D počítačová grafika (PGR007).
Gyfis
Matfyz(ák|ačka) level I
Příspěvky: 2
Registrován: 2. 1. 2013 10:20
Typ studia: Informatika Bc.

Zk. 9.1.2015 - předtermín

Příspěvek od Gyfis »

Ahoj, tady jsou otázky, odpovědi a mé bodování z dnešního předtermínu:

Otázky:
1) Napiště datovou strukturu, kterou byste reprezentovali hranu v řádkovém algoritmu pro vyplňování n-úhelníku. Použijte jazyk z množiny {C, C++, Java, C#}. Berte v úvahu dva obvyklé druhy vyplňování, každý parametr stručně popište.
2) Co je to anti-aliasing, k čemu se používá? Popište základní principy použité při anti-aliasingu (ne konkrétní algoritmy).
3) Napište půltónovací matici pro ČB laserovou tiskárnu o 51 odstínech.
4) Jak byste reprezentovali kameru pro rovnoběžnou kolmou projekci (ortogonální)? Jak byste přišli na matici projekce této kamery (nebo tak něco)?

Upřesnění:
1) Ptal jsem se na jazyk, psal ať to není žádný lisp, ať je to něco rozumného a deklarativního, ať jde prostě vidět, že člověk ví o co jde (myslím, že mu šlo hlavně o datové typy proměnných)


Moje odpovědi a hodnocení:
1) struct Edge { real x, int y, int dy, real dxy },
x: x-souřadnice prvního bodu hrany a při běhu algoritmu průsečík s moentální řádkou
y: y-souřadnice prvního bodu hrany
dy: y-rozdíl mezi prvním a druhým bodem hrany (y2 - y1)
dxy: o kolik se změní x při přechodu z y na y+1 (na další řádku), vypočítá se jako (x2 - x1) / dy
[25/25]

2) Antialiasing je metoda, která se používá pro zlepšení vizuálních vlastností objektů vykreslených na obrazovce (čar, polygonů, písma).
Funguje jako vykreslování všech pixelů, které objekt překrývá, a používá více odstínů barvy (například: odstín odpovídá procentu zakrytí pixelu).
[18/25] - Myslím, že jsem tam toho moc víc nepsal, nějaké věci kolem, asi mu tam něco specifického chybělo.

3) jelikož jde o laserovou tiskárnu, musí se použít bodový rastr, při pravidelném inkrementálním by se rozpíjely kapky.
Jelikož chceme 51 odstínů, máme 1 odstín bílý a 50 odstínů barvy, to odpovídá matici 10x10, kde pro každý odstín přidáme dva pixely (nejdřív do levé-horní a pravé-spodní poloviny kde tvoříme kruhy, a poté jakoby zmenšujeme invertovaný kruh v pravé-horní a levé-spodní polovině). Přesně tenhle příklad je ve slajdech, nakreslil jsem odstíny 1,3,25,45,50.
[25/25]

4) kameru budeme reprezentovat pomocí:
S: rovina průmětny
N: vektor kolmý na průmětnu
u: svislý vektor
Na matici transformace bych přišel tím způsbem, že bych vektor N sjednotil s osou z a vektor u sjednotil s osou x, pomocí operace Cs(S,uxN,u,N).
Matice bude 4x4, neboť se použijí homogenní souřadnice (x,y,z,w)
[25/25]


Atmosféra na zkoušce hodně uvolněná, zkoušející si vklidu vyřídil hovor při zkoušení, písemku mi opravil během pár minut potom, co jsem mu ji dal.
Odpovědět

Zpět na „PGR003 Počítačová grafika I“