# Zk. 9.1.2015 - předtermín

<{ForumPost(poster="Gyfis", timestamp=2015-01-09 13:31:36)}>
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.
<{/ForumPost}>

