ZPG -Základy Počítačové Grafiky cvičení Petr Delong petr.delong@centrum.cz
Vstupní požadavky : základy programování (MS DOS, Pascal, C, Java) matematika v rozsahu tří semestrů technické VŠ Programování v C/C++, Úvod do programování (Java), Programovací jazyky a překladače
Literatura J. Sochor, J. Žára: Algoritmy počítačové grafiky. Skripta ČVUT Praha 1993 I. Serba, J. Zendulka, J. Sochor: Základy počítačové grafiky. Skripta VUT Brno 1992 J. Žára a kol.: Počítačová grafika Články v odborných časopisech a na internetu Studijní materiály G:\VYUKA\456\ZPG\Prednasky\Doc
Zápočet Odladění a přijetí dvou projektů a prezentace Příklad na 2D grafiku(max. 15 bodů) Příklad na 3D grafiku (plochy, tělesa) (max. 15 bodů) Prezentace (max. 10 bodů) Odevzdání První projekt do 7 týdne – oznámení zadaní do 5-6týdne Druhý projekt do 14 týdne (zápočtový) Programovací jazyk- JAVA (JavaApplet) Po dohodě i jiné Projekty použitelné pro výuku - body navíc Odevzdání po termínu – max. 5 bodů za jeden program Náměty je nutno předem konzultovat Nekonzultované náměty nemusí být uznány
Zkouška Podmínky Bodové hodnocení: zápočet - 40 bodů(minimum 20 bodů) zápočet (minimální počet 20 bodů) zodpovězení tří otázek při ústní zkoušce Bodové hodnocení: zápočet - 40 bodů(minimum 20 bodů) zkouška - 45 bodů 3 otázky po 15 bodů aktivita - 15 bodů originální náměty, znalosti na cvičení, …
Projekty Projekt musí obsahovat: Zadání projektu, jméno autora, datum, předmět. Název projektu, stručný výpis jednotlivých kroků řešení. Seznam souborů a knihoven potřebných projektem Zdrojový program všech částí (modulů, procedur) Seznam použitých částí programů a knihoven, které byly použity v projektu Soubory pro provoz programu ( pokud jsou programem vyžadovány) Teoretickou část, týkající se programu (nejlépe jako součást projektu) Chybějící požadavky mají za následek odečítání bodu Pro udělení zápočtu je nutné přijetí obou zápočtových projektů nejpozději do konce semestru Projekty jsou přijímány na cvičeních formou konzultace
Projekty Kladně je hodnoceno: srozumitelné a jednoduché ovládání programu snadné a jednoduché zadávání vstupní údajů možnost editace vstupních údajů (ne vlastním editačním programem ) informace o chodu programu. Co se děje, vstupy apod. vlastní zadání – námět netradiční řešení, vlastní (vyhovující) řešení možnost využití programu
Projekty Záporně je hodnoceno chybný chod programu neznalost zdrojového kódu neznalost teorie potřebné k vyřešení zpracovávaného problému opakované výpočty nadbytečné výpočty gramatické chyby Jestliže program nejde spustit – není přijat
Prezentace Délka 15 – 30 minut 8 – 10 řádek na slide Font mininálně 16 Kolem 10 slidů na prezentaci Nepoužívat velké množství barev Nainstalovat a vyzkoušet předem
Zápočet – Zkouška Dotazy?
Porovnání řešení geometrických úloh z hlediska tradičního řešení (papír, pravítko, kreslící náčiní,..) s použitím počítače
Tradiční způsob řešení Zobrazení problému do roviny znalost základních úloh pro zobrazení problému do roviny nutná prostorová představivost výsledek – málo názorný (nutná prostorová představivost) Řešení prostorové úlohy (3D) v rovině (2D) znalost základních úloh pro zobrazení problému do roviny (nutná prostorová představivost) Výsledek řešení je v rovině (2D) nenázorný – na jednom obrázku je vše
Počítačové řešení Zadání úlohy - řešení Načtení souřadnic bodů a požadavků (zachovat původní tvar i formu) Úprava vstupní formátu dat (pokud je to nutné) Prostorové (rovinné) řešení úlohy (znalost procedur pro řešení úlohy) Výstup
Počítačové řešení Zobrazení řešení je-li požadováno nebo nutné přepočet vstupních i výstupních údajů (formát, jednotky, dle zobrazení) zobrazení (vykreslení) řešení předání výstupních parametrů pro další zpracování přepočet údajů do původní formy a tvaru bez přepočtu
Porovnání řešení geometrických úloh Dotazy?
Opakování Konstrukce pravidelného osmistěnu Přímka, úsečka, vektor, rovina Průsečík přímky a roviny Vektorový a skalární součin Identifikace objektů Konstrukce pravidelného osmistěnu
Přímka, úsečka, vektor Parametrické vyjádření: x( t ) = ax + ( bx – ax ) . t y( t ) = ay + ( by – ay ) . t t ? Pro: t < 0, 1 > - úsečka AB t < -, > - přímka - B A B A
Přímka a rovina Přímka v 2D … dva body R, P X = P + t . ( R – P ) , p (P, R) t < 0, 1 > … úsečka PR t < 0, > … polopřímka P t < -, > … přímka p t < a, b > … úsečka na p, kde a b < -, > Rovina v 3D … tři body A, B, C X = A + v. ( B – A ) + t . ( C – A ) , α ( A, B, C ) v, t < -, > P R
Směr (vektor) přímky - úsečky by - ay s = … VS = ( bx – ax, by – ay ) … vektor úsečky bx – ax VK = ( - (by – ay) , bx – ax) … vektor kolmice y (bx, by) VK by – ay VS (ax, ay) bx – ax x
Průsečík přímky a roviny Řešíme rovnici: P + u . ( R – P ) = A + v. ( B – A ) + t . ( C – A ) přímka p rovina Q u, v, t …soustava rovnic
Vektorový součin w a b w1 w2 w3 w1 = a2 b3 - a3 b2 w = a * b = a1 a2 a3 … w2 = a3 b1 - a1 b3 b1 b2 b3 w3 = a1 b2 - a2 b1 w … normálový vektor vektorů w a b
Skalární součin vektorů Vektory a (a1, a2, a3 ) a b (b1,b2, b3 ) a . b = a . b . cos α a . b = a1 b1 + a2 b2 + a3 b3 α b a
Opakování Dotazy?
Průsečík přímky a kružnice Sestrojte průsečík přímky p (P, R) a kružnice k (S,r). SD > r … nemá řešení k p r S D . P
Průsečík přímky a kružnice Sestrojte průsečík přímky p (P, R) a kružnice k (S,r). R SD = r … jedno řešení D … dotykový bod k p S . D P
Průsečík přímky a kružnice Sestrojte průsečík přímky p (P, R) a kružnice k (S,r). SD < r … 2 průsečíky X, Y Δ SDY je pravoúhlý, kde DX = DY = p k r Y r S . d D X P
Identifikace objektů Proč je to potřeba Jak Úsečka Kružnice
Úsečka Identifikovaný bod leží v obdélníku min max souřadnic počátečního a koncového bodu úsečky. B(xB, yB ) yA > yP v yA < yP P(xP, yP ) A(xA, yA ) xA < xP v xA > xP
Úsečka – krok 1 B(xB, yB ) yA > yP v yA < yP d P(xP, yP ) zvětšeno o rozměry vyhledávacího obdélníka A(xA, yA ) xA < xP v xA > xP
Úsečka – krok 2 Zjistíme vzdálenost d bodu P od úsečky AB. B(xB, yB ) Obsah ΔABP > e > 0 d > e … P AB d < e … P AB d P(xP, yP ) A(xA, yA ) e > 0 velikost vyhledávacího okénka
Úsečka – krok 3 Výpočet „identifikace“ Heronův vzorec pro obsah trojúhelníka ABP b) Trojúhelníková nerovnost B | AP + BP – AB | < e P A
Kružnice Identifikace kružnice k( S, r ) | SP – r | < e … P …bod kružnice k P k r body mimo kružnice k… kružnice neuchopena S bod kružnice k … kružnice uchopena
Identifikace objektů Dotazy?
Příčka mimoběžek Příčka p mimoběžek a, b bodem P . p a X P Y b
Příčka mimoběžek Řešení: (I) 1. ( a, P ) … p 2. Y ( x b ) 3. p ( Y, P ) … příčka [ 4. X ( a x p ) ] a p a X P (II) 1. (a, P ) … p 2. (b, P ) … p 3. p ( x ) …příčka [ 4. X ( a x p ) 5. Y ( b x p ) ] Y b
Příčka mimoběžek Příčka p mimoběžek a, b rovnoběžná se směrem s . a p X Y b s
Příčka mimoběžek Příčka p mimoběžek a, b rovnoběžná se směrem s . a p 1. (a, s ) … p 2. (b, s ) … p 3. p ( x ) …příčka [ 4. X ( a x p ) 5. Y ( b x p ) ] X Y b s
Příčka mimoběžek Nekratší příčka p mimoběžek a, b. s a, b s … je kolmé na a, b s = ( a * b ) … vektorový součin vektorů přímek a, b a p X w1 w2 w3 s = a * b = a1 a2 a3 b1 b2 b3 Y s1 = a2 b3 + a3 b2 … s2 = a2 b1 + a1 b3 s3 = a1 b2 + a2 b1 s b
Konstrukce pravidelného osmistěnu Sestrojte pravidelný osmistěn, který je dán vrcholem A a přímkou KL, na které leží osa tělesa. K A L
Konstrukce pravidelného osmistěnu A a KL vektor úsečky KL je normálový vektor roviny a E S ( a * KL ) … průsečík KL s rovinou a B a A 3. ABCD … čtverec v rovině a o vrcholu A a středu S C D 4. E,F KL, kde AS = SE = SF F L
Konstrukce pravidelného osmistěnu Výsledek: A L