Tematický plán kroužku
pro rok 2007/2008
-
27.9. Úvod
- porovnání úrovně znalostí - příklad na házecí kostku
- diskuse plánu na nový školní rok
-
4.10. Programovací metody
- procedury, funkce
- modulární programování, moduly a členění projektu do souborů
- Základní principy OOP:
- - encapsulation (obalení)
- - inheritance (dědičnost)
- - polymorfismus (mnohotvarost)
- - komentovaný příklad - viz. příklad na hierarchii ovoce z roku 2005/2006
-
11.10. Objektově orientované programování
- samostatný příklad: využití dědičnosti v hierarchii šachových figurek
-
18.10. Objektově orientované programování
- rozbor a okomentování příkladu na hierarchii šachových figurek
-
25.10. Stavíme na objektové hierarchii Delphi
- možnosti využití existující objektové hierarchie Delphi pro naše účely
- automatická správa, vykreslování a dealokace objektů
- jednodušší obsluha událostí (např. drag & drop)
- ukázka na vylepšeném programu šachy, kde jsou figurky odvozeny od třídy TGraphicControl
-
1.11. Stavíme na objektové hierarchii Delphi
- samostatný příklad: úprava demoprogramu "Šachy" z předchozí hodiny tak, aby kontroloval správnost pohybu jednoho zvoleného typu figurek
-
8.11. Stavíme na objektové hierarchii Delphi
- dokončení samostatného příkladu - úprava demoprogramu "Šachy"
-
15.11. Dynamická datová úložiště v paměti
- dynamické pole: nastavení velikosti, zjištění rozsahu indexů
- vícerozměrná dynamická pole - správa rozměrů, přístup k prvkům
- seznam TList: správa seznamu, přístup k prvkům, vkládání, záměna, řazení a odstraňování prvků
- "sbírka" TCollection: správa, přístup k prvkům, vkládání a odstraňování prvků
- oblast použití datových úložišť TList a TCollection, jejich srovnání, výhody a nevýhody
- komentované ukázky použití uvedených datových úložišť
-
22.11. - 20.12. Dynamická datová úložiště v paměti
- samostatný příklad: vektorový grafický editor využívající pro uložení dat některé z probraných úložišť
-
10.1. Obsluha webové kamery ve Windows
- hierarchie ovladačů ve Windows
- knihovna AVICap32.dll a komunikace s ní pomocí tzv. capture window
- API funkce webové kamery
- systémové dialogy pro nastavení parametrů snímání obrazu
-
17.1. Obsluha webové kamery ve Windows
- komentovaný příklad programové obsluhy kamery
- vytvoření zachytávacího okna (capture window), připojení driveru k oknu, parametry snímání a obrazu, uložení statického snímku
-
24.1. Digitální zpracování obrazu
- práce s barvou, redukce na jednobarevný (intenzitní) signál, euklidovská vzdálenost
- redukce šumu - filtrace
- jasové bodové korekce, histogram, prahování
- princip konvoluce, maticové "operátory"
- vyhledávání hran v obraze, gradientní operátory
- morfologické operátory (dilatace, eroze, otevření, uzavření), skelet objektu
- odkazy: Zpracování digitalizovaného obrazu - přednášky ZČU
-
31.1. - 10.4. Digitální zpracování obrazu
- samostatný příklad: snímání pracovní desky webovou kamerou a detekce kuličky na této desce. Pokus o detekci případného pohybu kuličky a předpovězení její následné polohy
- z důvodů limitace hardwarového vybavení (nedostatek webových kamer) a značné složitosti příkladu se druhá část kroužku věnovala vylepšování vektorového grafického editoru z listopadu
- dosažené výsledky: kuličku se na desce daří nalézt cca z 80%. Implementovaný algoritmus na rozpoznání obrazu je však natolik pomalý, že pohyb není možné v reálném čase analyzovat
-
17.4. - 24.4. Programovací šablony - Object Factory
- důležitost tzv. "Design Patterns" (programovacích šablon) v programování
- strukturovaný návrh aplikace, vazby mezi jednotlivými moduly a funkcemi
- jednou z programovacích šablon je právě koncept "továrny na objekty" - Object Factory
- Object Factory jako "výrobce" různých typů objektů se společným předkem v objektové hierarchii
- možnost serializace dat (ukládání a čtení z disku) s respektováním typu objektu
- komentovaný příklad: ukázka použití konceptu pro vektorový grafický editor, kdy jsou různé typy grafických objektů odvozeny od společného předka a vytvářeny pomocí Object Factory. Rovněž je ukázán způsob serializace (ukládání a načítání)
- pokročilé použití Object Factory při vytváření plug-inů, kdy jsou do existující aplikace (např. grafického editoru) dodávány nové typy objektů (např. geometrických tvarů), které nebyly v době implementace vlastní aplikace ještě známy
-
15.5. - 22.5.
- samostatná práce: pokračování v práci na vlastních programech - vektorovém grafickém editoru a digitálním zpracování obrazu
-
29.5. Úvod do OpenGL
- Knihovna OpenGL (Open Graphics Library) je platformově nezávislá. Přímé napojení na hardware grafické karty případně softwarová emulace
- způsob práce: display list -> vyhodnocení -> rasterizace -> framebuffer. Doplňkové operace (textury, osvětlení, mlha, shadery). Pracuje jako stavový automat
- OpneGL zná pouze nejjednodušší primitvy: body, úsečky, trojúhelníky a mnohoúhelníky
- nadstavba GLU (OpenGL Utilities): kvadriky (koule, válec, kužel,...), parametrické plochy
- nadstavba GLUT (OpenGL Utility Toolkit): usnadňuje tvorbu uživatelského rozhraní, práce s okny
- použití OpenGL v Delphi: inicializace OpenGL kontextu a jeho namapování do okna, počáteční nastavení parametrů kamery a vykreslování, cyklické překreslování
- komentovaný příklad: rotující trojúhelník
- odkazy:
-
5.6. Úvod do OpenGL
- analýza a drobné modifikace komentovaného příkladu z minulého týdne
-
12.6. Textury v OpenGL
- textury obecně: procedurální, bitmapy
- procedurální textury lze v OpenGL implementovat jako shadery
- dále se budeme zabývat pouze bitmapovými texturami
- načtení textury (bitmapy), nastavení parametrů textury a její nahrátí do videopaměti, vykreslení modelu s texturovými souřadnicemi
- glGenTextures, glBindTexture, glPixelStorei, glTexParameteri, glTexEnvf, glTexImage2D, glTexCoord
- komentovaný příklad: texturovaný čtverec
- odkazy:
Vedoucí kroužku: Roman Čečil
E-mail:
RCecil@seznam.cz