Zobrazování 2D Nadpis křivek 2 Nadpis 3

Rozměr: px
Začít zobrazení ze stránky:

Download "Zobrazování 2D Nadpis křivek 2 Nadpis 3"

Transkript

1 IZG Nadpis Lab 04 1 Zobrazování 2D Nadpis křivek 2 Nadpis 3 Pavel Jméno Svoboda Příjmení Vysoké Vysoké učení technické učení technické v Brně, v Fakulta Brně, Fakulta informačních informačních technologií technologií v Brně Božetěchova 2, Brno isvoboda@fit.vutbr.cz jmeno@fit.vutbr.cz

2 Obsah Úvodní část Rekapitulace 2D křivek Fergusnova kubika Bézierova křivka Výpočet pomocí Bernstein polynomů Racionální křivka Výpočet pomocí algoritmu De Casteljau Neracionální IZG Lab 04 - Zobrazování 2D křivek 2

3 Rekapitulace 2D křivek Vyjádření křivek Explicitní, Implicitní Parametrické Použití 2D křivek Definice fontů Šablonování Definice objektů Animační křivky [F. Alexandr] IZG Lab 04 - Zobrazování 2D křivek 3

4 Typy křivek Aproximační Interpolační Racionální váhové koeficienty řídících bodů Neracionální váhové koeficienty rovny 1 [F. Alexandr] IZG Lab 04 - Zobrazování 2D křivek 4

5 Fergusnova kubika Interpolační křivka Definována 2 koncovými body 2 tečnými vektory Neintuitivní ovládání Nelokální změna tvaru Počítá se pomocí polynomů Hermitovy polynomy IZG Lab 04 - Zobrazování 2D křivek 5

6 Bézierova křivka Její první užití se datuje do 60tých let CAD aplikace Automobilový design TrueType i Postcript písma Parametrické vyjádření řád polynomu = stupeň křivky je počet řídících bodů křivky - 1 Aproximační křivka Vždy ale prochází prvním a koncovým kontrolním bodem Racionální vs Neracionální IZG Lab 04 - Zobrazování 2D křivek 6

7 Bézierova křivka výpočet pomocí polynomů Stupeň křivky = Řád polynomu = Řídících bodů -1 Racionální X Neracionální Neracionální: váhové hodnoty = 1 Racionální: Váhové hodnoty obecně jakékoli Parametrické vyjádření B Bernsteinův polynom t parametr křivky <0;1> n řád polynomu i index řídícího bodu n i0 Q t PR t n i0 i i n i0 t t n n i ni Bi t t 1 t, t 0,1, i 0,, n i n PB n i i i B i n i IZG Lab 04 - Zobrazování 2D křivek 7

8 Bézierova kubika Bézierova kubika Počet řídících bodů = 4 P0, P1, P2, P3 T = [t3, t2, t1, t0 = 1] Q t T P P P P B t t B t t t B t t t B t t Q t P B t P B t P B t P B t PB t i0 i i IZG Lab 04 - Zobrazování 2D křivek 8

9 Bézierova křivka algoritmus De Casteljau Rekurzivní algoritmus Výpočet Neracionální Bézierovy křivky P j i = (1 t) P j 1 j 1 i + tp j = 1 n; i = 0 n j i+1 P 0 0 P 1 0 P 2 0 P 3 0 lirp lirp lirp P 0 1 P 1 1 lirp lirp P 2 1 P 0 2 P 1 2 lirp P 0 3 Bod na křivce lirp = lineární interpolace IZG Lab 04 - Zobrazování 2D křivek 9

10 Bézierova křivka implementace De Casteljau Základní implementace: Iterujeme přes parametr t <0;1> Iterace přes všechny úrovně rekurze Iterace přes veškeré kontrolní body v dané úrovni a jejich postupný výpočet if(n < 1) return; n = kontrolnich bodu-1; for(int q = 0; q <= quality; ++q, t+=t_step) { } Copy of input vector in to local vector of points for(int j = 0; j < n; ++j) for(int i = 0; i < n-j; ++i) { Výpočet bodu i v úrovni j { IZG Lab 04 - Zobrazování 2D křivek 10

11 Samostatná práce Implementace Bézierovy křivky Buď De Casteljau neracionální křivka Anebo Pomocí Bernsteinových polynomů racionální křivka IZG Lab 04 - Zobrazování 2D křivek 11

12 Cvičení - rozhraní Soubory student.h deklarace funkcí, které programujete student.c zde pište Váš kód void bezierdecasteljau(int quality, const S_Vector *points, S_Vector *line_points) void bezierbernsteinpolynom(int quality, const S_Vector *points,s_vector *line_points) base.h definice struktury Point2D typedef struct Point2d { double x; double y; double weight; }Point2d; IZG Lab 04 - Zobrazování 2D křivek 12

13 Cvičení vector.h Vektor je typu S_Vector USE_VECTOR_OF(Point2d, point2d_vec) Vygeneruje funkce s předponou point2d_vec pro práci s vektorem S_Vector prvků typu Point2d #define point2d_vecget(pvec, i) (*point2d_vecgetptr((pvec), (i))) Definice makra pro získání i-tého prvku s vektoru pvec S_Vector* vector = point2d_veccreateempty() vytvoří prázdný vektor pro prvky typu Point2d point2d_vecsize(pvec) vrátí velikost vektoru point2d_vecgetptr(pvec, i) ukazatel na i-tý prvek vektoru pvec point2d_vecpushback(pvec, p) vloží na konec vektoru pvec prvek p point2d_vecset(pvec, i, p) vloží prvek p do vektoru pvec na index i point2d_vecrelease(&pvec) vs point2d_vecclean(pvec) zruší kompletně celý vektor pvec již s ním nelze pracovat vs smaže prvky vektoru vektor je prázdný o velikosti 0 Další funkce viz vector.h IZG Lab 04 - Zobrazování 2D křivek 13

14 C est la fin. IZG Lab 04 - Zobrazování 2D křivek 14

Bézierovy křivky Bohumír Bastl KMA/GPM Geometrické a počítačové modelování Bézierovy křivky GPM 1 / 26

Bézierovy křivky Bohumír Bastl KMA/GPM Geometrické a počítačové modelování Bézierovy křivky GPM 1 / 26 Bézierovy křivky Bohumír Bastl (bastl@kma.zcu.cz) KMA/GPM Geometrické a počítačové modelování Bézierovy křivky GPM 1 / 26 Opakování Spline křivky opakování Bézierovy křivky GPM 2 / 26 Opakování Interpolace

Více

15. listopadu Matematický ústav UK Matematicko-fyzikální fakulta. Hermitovská interpolace

15. listopadu Matematický ústav UK Matematicko-fyzikální fakulta. Hermitovská interpolace Geometrické modelování Zbyněk Šír Matematický ústav UK Matematicko-fyzikální fakulta Hermitovská interpolace 15. listopadu 2017 Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 1 / 23 Hermiteovská

Více

Plochy počítačové grafiky II. Interpolační plochy Bezierovy pláty nad obdélníkovou a trojúhelníkovou sítí Recionální Bezierovy pláty B-spline NURBS

Plochy počítačové grafiky II. Interpolační plochy Bezierovy pláty nad obdélníkovou a trojúhelníkovou sítí Recionální Bezierovy pláty B-spline NURBS II Interpolační plochy Bezierovy pláty nad obdélníkovou a trojúhelníkovou sítí Recionální Bezierovy pláty B-spline NURBS Konstrukce a zadání plochy hraniční křivky sítí bodů Kinematicky vytvořené křivky

Více

Kristýna Bémová. 13. prosince 2007

Kristýna Bémová. 13. prosince 2007 Křivky v počítačové grafice Kristýna Bémová Univerzita Karlova v Praze 13. prosince 2007 Kristýna Bémová (MFF UK) Křivky v počítačové grafice 13. prosince 2007 1 / 36 Pojmy - křivky a jejich parametrické

Více

Matematický ústav UK Matematicko-fyzikální fakulta

Matematický ústav UK Matematicko-fyzikální fakulta Geometrické modelování Zbyněk Šír Matematický ústav UK Matematicko-fyzikální fakulta 5. října 2016 Zbyněk Šír (MÚ UK) - Geometrické modelování 5. října 2016 1 / 14 Obsah dnešní přednášky Co je to geometrické

Více

POČÍTAČOVÁ GRAFIKA - PGR 2012037 2014 2015 PROGRAM PŘEDNÁŠEK. Po 9:00-10:30, KN:A-214

POČÍTAČOVÁ GRAFIKA - PGR 2012037 2014 2015 PROGRAM PŘEDNÁŠEK. Po 9:00-10:30, KN:A-214 PROGRAM PŘEDNÁŠEK Po 9:00-10:30, KN:A-214 1P 16. 2. Křivky definice, analytické vyjádření. Bézierova křivka definice, vlastnosti, odvození Bernsteinových polynomů, de Castejlau algoritmus. 2P 23. 2. Spojitost

Více

Jana Dannhoferová Ústav informatiky, PEF MZLU

Jana Dannhoferová Ústav informatiky, PEF MZLU Počítačová grafika Křivky Jana Dannhoferová (jana.dannhoferova@mendelu.cz) Ústav informatiky, PEF MZLU Základní vlastnosti křivek křivka soustava parametrů nějaké rovnice, která je posléze generativně

Více

Matematický ústav UK Matematicko-fyzikální fakulta

Matematický ústav UK Matematicko-fyzikální fakulta Geometrické modelování Zbyněk Šír Matematický ústav UK Matematicko-fyzikální fakulta 2. října 2018 Zbyněk Šír (MÚ UK) - Geometrické modelování 2. října 2018 1 / 15 Obsah dnešní přednášky Co je to geometrické

Více

Křivky a plochy technické praxe

Křivky a plochy technické praxe Kapitola 7 Křivky a plochy technické praxe V technické praxi se setkáváme s tím, že potřebujeme křivky a plochy, které se dají libovolně upravovat a zároveň je jejich matematické vyjádření jednoduché.

Více

KMA/GPM Barycentrické souřadnice a

KMA/GPM Barycentrické souřadnice a KMA/GPM Barycentrické souřadnice a trojúhelníkové pláty František Ježek jezek@kma.zcu.cz Katedra matematiky Západočeské univerzity v Plzni, 2008 19. dubna 2009 1 Trojúhelníkové pláty obecně 2 Barycentrické

Více

Programování v C++ 1, 1. cvičení

Programování v C++ 1, 1. cvičení Programování v C++ 1, 1. cvičení opakování látky ze základů programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí procvičených

Více

Aproximační křivky. Trocha historie. geometrické modelování veliký pokrok v oblasti letectví 1944 Roy Liming

Aproximační křivky. Trocha historie. geometrické modelování veliký pokrok v oblasti letectví 1944 Roy Liming Trocha historie geometrické modelování veliký pokrok v oblasti letectví 944 Roy Liming analytik, North American Aviation (výrobce letadel) společně s konstruktérem a designérem Edgardem Schmuedem matematizace

Více

Šablonové metaprogramování v C++ Miroslav Virius KSI FJFI ČVUT

Šablonové metaprogramování v C++ Miroslav Virius KSI FJFI ČVUT Šablonové metaprogramování v C++ Miroslav Virius KSI FJFI ČVUT Šablonové (generické) metaprogramování Šablona v C++, genericita v jiných jazycích Výpočetní úplnost Problémy Příklad Porovnání s klasickým

Více

Aproximační křivky. Trocha historie. geometrické modelování veliký pokrok v oblasti letectví 1944 Roy Liming

Aproximační křivky. Trocha historie. geometrické modelování veliký pokrok v oblasti letectví 1944 Roy Liming Trocha historie geometrické modelování veliký pokrok v oblasti letectví 944 Roy Liming analytik, North American Aviation (výrobce letadel) společně s konstruktérem a designérem Edgardem Schmuedem matematizace

Více

Plochy zadané okrajovými křivkami

Plochy zadané okrajovými křivkami Plochy zadané okrajovými křivkami Lineární plát plocha je určena dvěma okrajovými křivkami, pokud by pro tyto křivky byly intervaly, v nichž leží hodnoty parametru, různé, provedeme lineární transformaci

Více

Rhino - základní příkazy

Rhino - základní příkazy Rhino - základní příkazy Příkazy - volíme z hlavní nabídky levým tlačítkem myši - ikonou z nástrojové lišty levým (LTM)/pravým(PTM) tlačítkem myši Příkaz ukončíme pravým tlačítkem myši (Enter) nebo klávesou

Více

Přehled. Motivace Úvod. Křivky a plochy počítačové grafiky. Závěr. Rozvoj počítačové grafiky Výpočetní geometrie

Přehled. Motivace Úvod. Křivky a plochy počítačové grafiky. Závěr. Rozvoj počítačové grafiky Výpočetní geometrie Vývoj výpočetní geometrie Univerzita Karlova v Praze Matematicko-fyzikální fakulta petra.surynkova@mff.cuni.cz Přehled Motivace Úvod Rozvoj počítačové grafiky Výpočetní geometrie Křivky a plochy počítačové

Více

Fergusnova kubika, která je definována pomocí bodu P1, vektoru P1P2, bodu P3 a vektoru P3P4

Fergusnova kubika, která je definována pomocí bodu P1, vektoru P1P2, bodu P3 a vektoru P3P4 Která barva nepatří do základních barev prostoru RGB? a. Černá b. Zelená c. Modrá d. Červená Úloha 2 Jakým minimálním počtem bodů je jednoznačně určena interpolační křivka 5. řádu? a. 6 b. 3 c. 5 d. 7

Více

Křivky a plochy I. Petr Felkel. Katedra počítačové grafiky a interakce, ČVUT FEL místnost KN:E-413 na Karlově náměstí

Křivky a plochy I. Petr Felkel. Katedra počítačové grafiky a interakce, ČVUT FEL místnost KN:E-413 na Karlově náměstí Křivky a plochy I Petr Felkel Katedra počítačové grafiky a interakce, ČVUT FEL místnost KN:E-413 na Karlově náměstí E-mail: felkel@fel.cvut.cz S použitím materiálů Bohuslava Hudce, Jaroslava Sloupa Poslední

Více

Křivky a plochy. Pavel Strachota. FJFI ČVUT v Praze

Křivky a plochy. Pavel Strachota. FJFI ČVUT v Praze Křivky a plochy Pavel Strachota FJFI ČVUT v Praze 5. března 2015 Obsah 1 Parametrické křivky 2 Parametrické bikubické povrchy 3 Implicitní povrchy 4 Dělené křivky 5 Dělené povrchy Úvod potřeba popsat a

Více

Téma: Vektorová grafika. Určete pravdivost následujícího tvrzení: "Grafická data jsou u 2D vektorové grafiky uložena ve voxelech."

Téma: Vektorová grafika. Určete pravdivost následujícího tvrzení: Grafická data jsou u 2D vektorové grafiky uložena ve voxelech. Téma: Vektorová grafika. Určete pravdivost následujícího tvrzení: "Grafická data jsou u 2D vektorové grafiky uložena ve voxelech." Téma: Vektorová grafika. Určete pravdivost následujícího tvrzení: "Na

Více

PB161 Programování v jazyce C++ Přednáška 10

PB161 Programování v jazyce C++ Přednáška 10 .. PB161 Programování v jazyce C++ Přednáška 10 Šablony Nikola Beneš 23. listopadu 2015 PB161 přednáška 10: šablony 23. listopadu 2015 1 / 29 K zamyšlení Jaký je rozdíl mezi new int[10] a new int[10]()?

Více

Rekurze. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

Rekurze. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12. Rekurze doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 12. září 2016 Jiří Dvorský (VŠB TUO) Rekurze 161 / 344 Osnova přednášky

Více

KŘIVKY A PLOCHY. Obrázky (popř. slajdy) převzaty od

KŘIVKY A PLOCHY. Obrázky (popř. slajdy) převzaty od KŘIVKY A PLOCHY JANA ŠTANCLOVÁ jana.stanclova@ruk.cuni.cz Obrázky (popř. slajdy) převzaty od RNDr. Josef Pelikán, CSc., KSVI MFF UK Obsah matematický popis křivek a ploch křivky v rovině implicitní tvar

Více

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND

Více

NURBS REPREZENTACE KŘIVEK V MAPLE

NURBS REPREZENTACE KŘIVEK V MAPLE 25. KONFERENCE O GEOMETRII A POČÍTAČOVÉ GRAFICE Karolína Kundrátová NURBS REPREZENTACE KŘIVEK V MAPLE Abstrakt Parametrizace křivek jako NURBS (tj. neuniformní racionální B-spliny) patří k moderním postupům

Více

Funkce pokročilé možnosti. Úvod do programování 2 Tomáš Kühr

Funkce pokročilé možnosti. Úvod do programování 2 Tomáš Kühr Funkce pokročilé možnosti Úvod do programování 2 Tomáš Kühr Funkce co už víme u Nebo alespoň máme vědět... J u Co je to funkce? u Co jsou to parametry funkce? u Co je to deklarace a definice funkce? K

Více

Text úlohy. Kolik je automaticky generovaných barev ve standardní paletě 3-3-2?

Text úlohy. Kolik je automaticky generovaných barev ve standardní paletě 3-3-2? Úloha 1 Kolik je automaticky generovaných barev ve standardní paletě 3-3-2? a. 256 b. 128 c. 216 d. cca 16,7 milionu Úloha 2 Jaká je výhoda adaptivní palety oproti standardní? a. Menší velikost adaptivní

Více

Základní vlastnosti ploch

Základní vlastnosti ploch plocha zpravidla se definuje jako výsledek spojitého pohybu jisté tvořící křivky podél zadané trajektorie lze obohatit o možnost spojitých změn tvaru tvořící křivky x v průběhu pohybu podél trajektorie

Více

Circular Harmonics. Tomáš Zámečník

Circular Harmonics. Tomáš Zámečník Circular Harmonics Tomáš Zámečník Úvod Circular Harmonics Reprezentace křivky, která je: podmonožinou RxR uzavřená funkcí úhlu na intervalu Dále budeme hovořit pouze o takovýchto křivkách/funkcích

Více

Programování v C++ 1, 14. cvičení

Programování v C++ 1, 14. cvičení Programování v C++ 1, 14. cvičení výpustka, přetěžování funkcí, šablony funkcí 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 funkcí

Více

Rekurzivní algoritmy

Rekurzivní algoritmy Rekurzivní algoritmy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (BI-EFA) ZS

Více

Cvičení z programování v C++ ZS 2016/2017 Přemysl Čech

Cvičení z programování v C++ ZS 2016/2017 Přemysl Čech Cvičení z programování v C++ ZS 2016/2017 Přemysl Čech cíl: vytvořit třídu inf_system pro ukládání informací o studentech a zaměstnancích působících na fakultě příklad použití: int main() { inf_system

Více

Jazyk C++ II. Šablony a implementace

Jazyk C++ II. Šablony a implementace Jazyk C++ II Šablony a implementace AR 2013/2014 Jazyk C++ II Úvod Dědičnost a kompozice nejsou vždy tou správnou odpovědí na požadavky znovupoužitelnosti kódu. Proto máme možnost definování určité třídy

Více

Text úlohy. Která barva nepatří do základních barev prostoru RGB? Vyberte jednu z nabízených možností: a. Černá b. Červená c. Modrá d.

Text úlohy. Která barva nepatří do základních barev prostoru RGB? Vyberte jednu z nabízených možností: a. Černá b. Červená c. Modrá d. Úloha 1 Která barva nepatří do základních barev prostoru RGB? a. Černá b. Červená c. Modrá d. Zelená Úloha 2 V rovině je dán NEKONVEXNÍ n-úhelník a bod A. Pokud paprsek (polopřímka) vedený z tohoto bodu

Více

Programování v C++ 2, 7. cvičení

Programování v C++ 2, 7. cvičení Programování v C++ 2, 7. cvičení spojový seznam 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí minule procvičené látky Dědění

Více

Mělká a hluboká kopie

Mělká a hluboká kopie Karel Müller, Josef Vogel (ČVUT FIT) Mělká a hluboká kopie BI-PA2, 2011, Přednáška 5 1/28 Mělká a hluboká kopie Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra teoretické informatiky, Fakulta

Více

Stromy. Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy

Stromy. Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy Stromy úvod Stromy Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy Neorientovaný strom Orientovaný strom Kořenový orientovaný

Více

Základní vlastnosti křivek

Základní vlastnosti křivek křivka množina bodů v rovině nebo v prostoru lze chápat jako trajektorii pohybu v rovině či v prostoru nalezneme je také jako množiny bodů na ploše křivky jako řezy plochy rovinou, křivky jako průniky

Více

5. Plochy v počítačové grafice. (Bézier, Coons)

5. Plochy v počítačové grafice. (Bézier, Coons) 5. PLOCHY V POČÍAČOVÉ GRAFICE Cíl Po prostudování této kapitoly budete umět popsat plochy používané v počítačové grafice řešit příklady z praxe, kdy jsou použity plochy Výklad Interpolační plochy - plochy,

Více

Úvod do programování - Java. Cvičení č.4

Úvod do programování - Java. Cvičení č.4 Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení

Více

Jazyk C++ I. Šablony

Jazyk C++ I. Šablony Jazyk C++ I Šablony AR 2013/2014 Jazyk C++ I Úvod Zatím známe programovací styly: Strukturované programování, Objektově orientované programovaní. AR 2013/2014 Jazyk C++ I 2 Příklady void Print(const int&

Více

Základy programování (IZP)

Základy programování (IZP) Základy programování (IZP) Šesté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 6. týden

Více

Odvozené a strukturované typy dat

Odvozené a strukturované typy dat Odvozené a strukturované typy dat Petr Šaloun katedra informatiky FEI VŠB-TU Ostrava 14. listopadu 2011 Petr Šaloun (katedra informatiky FEI VŠB-TU Ostrava) Odvozené a strukturované typy dat 14. listopadu

Více

Interpolace, ortogonální polynomy, Gaussova kvadratura

Interpolace, ortogonální polynomy, Gaussova kvadratura Interpolace, ortogonální polynomy, Gaussova kvadratura Petr Tichý 20. listopadu 2013 1 Úloha Lagrangeovy interpolace Dán omezený uzavřený interval [a, b] a v něm n + 1 různých bodů x 0, x 1,..., x n. Nechť

Více

Struktura programu v době běhu

Struktura programu v době běhu Struktura programu v době běhu Miroslav Beneš Dušan Kolář Struktura programu v době běhu Vztah mezi zdrojovým programem a činností přeloženého programu reprezentace dat správa paměti aktivace podprogramů

Více

PARAMETRICKÉ MODELOVÁNÍ V ARCHITEKTUŘE

PARAMETRICKÉ MODELOVÁNÍ V ARCHITEKTUŘE Žilinská univerzita v Žiline Stavebná fakulta Študentská vedecká odborná činnosť Akademický rok 2006-2007 PARAMETRICKÉ MODELOVÁNÍ V ARCHITEKTUŘE Meno a priezvisko študenta : Martin Matúšů Ročník a odbor

Více

Jazyk C++ I. Šablony 2

Jazyk C++ I. Šablony 2 Jazyk C++ I Šablony 2 AR 2013/2014 Jazyk C++ I Třídy template class TVektor { T *a; int n; static int PocInstanci; public: TVektor(int _n = 0) : n(_n) { a = new T[n]; PocInstanci++; } ~TVektor()

Více

Univerzita Karlova v Praze Matematicko-fyzikální fakulta

Univerzita Karlova v Praze Matematicko-fyzikální fakulta Univerzita Karlova v Praze Matematicko-fyzikální fakulta SEMINÁRNÍ PRÁCE PRO SOUTĚŽ SVOČ Eliška Chudáčková Modelování křivek na počítači Katedra didaktiky matematiky Vedoucí seminární práce: Studijní program:

Více

Numerické algoritmy KAPITOLA 11. Vyhledávání nulových bodů funkcí

Numerické algoritmy KAPITOLA 11. Vyhledávání nulových bodů funkcí Numerické algoritmy KAPITOLA 11 V této kapitole: Vyhledávání nulových bodů funkcí Iterativní výpočet hodnot funkce Interpolace funkcí Lagrangeovou metodou Derivování funkcí Integrování funkcí Simpsonovou

Více

Základní datové struktury

Základní datové struktury Základní datové struktury Martin Trnečka Katedra informatiky, Přírodovědecká fakulta Univerzita Palackého v Olomouci 4. listopadu 2013 Martin Trnečka (UPOL) Algoritmická matematika 1 4. listopadu 2013

Více

PB161 Programování v jazyce C++ Přednáška 9

PB161 Programování v jazyce C++ Přednáška 9 PB161 Programování v jazyce C++ Přednáška 9 Právo friend Přetěžování operátorů Nikola Beneš 16. listopadu 2015 PB161 přednáška 9: friend, přetěžování operátorů 16. listopadu 2015 1 / 30 Reklama PB173 Tematicky

Více

Grafická data jsou u 2D vektorové grafiky uložena ve voxelech NEPRAVDA Grafická data jsou u rastrové grafiky uložena v pixelech PRAVDA Grafická data

Grafická data jsou u 2D vektorové grafiky uložena ve voxelech NEPRAVDA Grafická data jsou u rastrové grafiky uložena v pixelech PRAVDA Grafická data Grafická data jsou u 2D vektorové grafiky uložena ve voxelech Grafická data jsou u rastrové grafiky uložena v pixelech Grafická data jsou u vektorové grafiky uložena v pixelech Na rozdíl od rastrové grafiky

Více

Bakalářská práce. Použití L-systémů pro křivky počítané rekurzivním dělením

Bakalářská práce. Použití L-systémů pro křivky počítané rekurzivním dělením Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky Bakalářská práce Použití L-systémů pro křivky počítané rekurzivním dělením Plzeň 2008 Michal Campr Prohlašuji,

Více

Rozsáhlé programy = projekty

Rozsáhlé programy = projekty Rozsáhlé programy = projekty Petr Šaloun katedra informatiky FEI VŠB-TU Ostrava 28. listopadu 2011 Petr Šaloun (katedra informatiky FEI VŠB-TU Ostrava) Rozsáhlé programy = projekty 28. listopadu 2011 1

Více

PB161 Programování v jazyce C++ Přednáška 10

PB161 Programování v jazyce C++ Přednáška 10 PB161 Programování v jazyce C++ Přednáška 10 Šablony Nikola Beneš 27. listopadu 2017 PB161 přednáška 10: šablony 27. listopadu 2017 1 / 33 Šablony PB161 přednáška 10: šablony 27. listopadu 2017 2 / 33

Více

PB přednáška (23. listopadu 2015)

PB přednáška (23. listopadu 2015) PB161 10. přednáška (23. listopadu 2015) Šablony Motivace snaha o co nejmenší duplikaci kódu co když máme kód, který chceme použít pro různé typy? generická funkce (maximum, minimum, swap, ) kontejnery

Více

Polynomy a interpolace text neobsahuje přesné matematické definice, pouze jejich vysvětlení

Polynomy a interpolace text neobsahuje přesné matematické definice, pouze jejich vysvětlení Polynomy a interpolace text neobsahuje přesné matematické definice, pouze jejich vysvětlení Polynom nad R = zobrazení f : R R f(x) = a n x n + a n 1 x n 1 +... + a 1 x + a 0, kde a i R jsou pevně daná

Více

Konstruktory a destruktory

Konstruktory a destruktory Konstruktory a destruktory Nedostatek atributy po vytvoření objektu nejsou automaticky inicializovány hodnota atributů je náhodná vytvoření metody pro inicializaci, kterou musí programátor explicitně zavolat,

Více

Pole a kolekce. v C#, Javě a C++

Pole a kolekce. v C#, Javě a C++ Pole a kolekce v C#, Javě a C++ C# Deklarace pole typ_prvku_pole[] jmeno_pole; Vytvoření pole jmeno_pole = new typ_prvku_pole[pocet_prvku_pole]; Inicializace pole double[] poled = 4.8, 8.2, 7.3, 8.0; Java

Více

Programování v C++, 2. cvičení

Programování v C++, 2. cvičení Programování v C++, 2. cvičení 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 Operátory new a delete 2 3 Operátory new a delete minule

Více

Základy programování (IZP)

Základy programování (IZP) Základy programování (IZP) Osmé počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 20.11.2017,

Více

Bitové operátory a bitová pole. Úvod do programování 2 Tomáš Kühr

Bitové operátory a bitová pole. Úvod do programování 2 Tomáš Kühr Bitové operátory a bitová pole Úvod do programování 2 Tomáš Kühr Bitové operátory Provádějí danou operaci s jednotlivými bity svých operandů Operandy bitových operátorů mohou být pouze celočíselné Vyhodnocení

Více

Programování v C++ 1, 6. cvičení

Programování v C++ 1, 6. cvičení Programování v C++ 1, 6. cvičení dědičnost, polymorfismus 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 3 Shrnutí minule procvičené

Více

Ukázka možností interpolace dat v softwaru Matlab

Ukázka možností interpolace dat v softwaru Matlab Ukázka možností interpolace dat v softwaru Matla Ing. Stanislav Olivík Anotace: V následujícím tetu ude čtenář seznámen s několika základními funkcemi softwaru Matla, pomocí nichž může interpolovat data

Více

DERIVACE. ln 7. Urči, kdy funkce roste a klesá a dále kdy je konkávní a

DERIVACE. ln 7. Urči, kdy funkce roste a klesá a dále kdy je konkávní a DERIVACE 1. Zderivuj funkci y = ln 2 (sin x + tg x 2 ) 2. Zderivuj funkci y = 2 e x2 cos x 3. Zderivuj funkci y = 3 e sin2 (x 2 ) 4. Zderivuj funkci y = x3 +2x 2 +sin x x 5. Zderivuj funkci y = cos2 x

Více

Vector datový kontejner v C++.

Vector datový kontejner v C++. Vector datový kontejner v C++. Jedná se o datový kontejner z knihovny STL jazyka C++. Vektor je šablona jednorozměrného pole. Na rozdíl od "klasického" pole má vector, mnoho užitečných vlastností a služeb.

Více

Programování v jazyce C a C++

Programování v jazyce C a C++ Programování v jazyce C a C++ Příklad na tvorbu třídy Richter 1 4. prosince 2017 1 Ing. Richter Miloslav, Ph.D., UAMT FEKT VUT Brno Dvourozměrné pole pomocí tříd Zadání Navrhněte a napište třídu pro realizace

Více

Příklady otázek PB009/jaro 2015

Příklady otázek PB009/jaro 2015 Příklady otázek PB009/jaro 2015 Upozornění: Otázky mohou být formulovány jinými slovy, požadovat vysvětlení problému obrázkem, nebo naopak komentování daného obrázku. Nelze spoléhat na prosté opsání odpovědí

Více

PROGRAMOVÁNÍ V C++ CVIČENÍ. Michal Brabec

PROGRAMOVÁNÍ V C++ CVIČENÍ. Michal Brabec PROGRAMOVÁNÍ V C++ CVIČENÍ Michal Brabec ARCHITECTURE Input 2 / 15 TASK Vytvořte základní data pro filesystem (zatím v main) Jednu autorizační autoritu Jeden registr souborů Cyklus který zpracovává vstup

Více

Programování v C++ 3, 3. cvičení

Programování v C++ 3, 3. cvičení Programování v C++ 3, 3. cvičení úvod do objektově orientovaného programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Dokončení spojového

Více

4. Rekurze. BI-EP1 Efektivní programování Martin Kačer

4. Rekurze. BI-EP1 Efektivní programování Martin Kačer 4. Rekurze BI-EP1 Efektivní programování 1 ZS 2011/2012 Ing. Martin Kačer, Ph.D. 2010-11 Martin Kačer Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze

Více

INTERPOLAČNÍ POLYNOM. F (x)... hledaná funkce (polynom nebo funkce vytvořená z polynomů), pro kterou platí

INTERPOLAČNÍ POLYNOM. F (x)... hledaná funkce (polynom nebo funkce vytvořená z polynomů), pro kterou platí 8 Řešení Lagrangeovy a Hermiteovy úlohy interpolace Kateřina Konečná/1 INTERPOLAČNÍ POLYNOM aproximace zadaných hodnot nebo hledané funkce f funkcí F (x) (polynomem) F musí být k f co nejblíže značení:

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Strukturované proměnné Struktura, union Jazyk C České vysoké učení technické Fakulta elektrotechnická A8B14ADP Jazyk C - Strukturované proměnné Ver.1.10 J. Zděnek 20151 Struktura

Více

C. 3. Vytvoření metodiky práce s implementovaným IS včetně jeho naplnění daty relevantních procesů a způsobů jejich vyhodnocování

C. 3. Vytvoření metodiky práce s implementovaným IS včetně jeho naplnění daty relevantních procesů a způsobů jejich vyhodnocování Název příjemce podpory: MĚSTO VESELÍ NAD MORAVOU tř. Masarykova 119 698 13 Veselí nad Moravou IMPLEMENTACE PROCESNÍHO ŘÍZENÍ V OBLASTI SAMOSTATNÉ PŮSOBNOSTI MĚSTA VESELÍ NAD MORAVOU C. 3. Vytvoření metodiky

Více

Pokročilé programování v jazyce C pro chemiky (C3220) Statické proměnné a metody, šablony v C++

Pokročilé programování v jazyce C pro chemiky (C3220) Statické proměnné a metody, šablony v C++ Pokročilé programování v jazyce C pro chemiky (C3220) Statické proměnné a metody, šablony v C++ Globální konstantní proměnné Konstantní proměnné specifikujeme s klíčovým slovem const, tyto konstantní proměné

Více

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Lukáš Havrlant Univerzita Palackého 10. ledna 2014 Primární zdroj Jiří Adámek: Foundations of Coding. Strany 137 160. Na webu ke stažení, heslo:

Více

ZPRO v "C" Ing. Vít Hanousek. verze 0.3

ZPRO v C Ing. Vít Hanousek. verze 0.3 verze 0.3 Hello World Nejjednoduší program ukazující vypsání textu. #include using namespace std; int main(void) { cout

Více

Jazyk C++ I. Šablony 3

Jazyk C++ I. Šablony 3 Jazyk C++ I Šablony 3 AR 2013/2014 Jazyk C++ I Třídy template class TVektor { T *a; int n; static int PocInstanci; public: TVektor(int _n = 0) : n(_n) { a = new T[n]; PocInstanci++; } ~TVektor()

Více

int ii char [16] double dd název adresa / proměnná N = nevyužito xxx xxx xxx N xxx xxx N xxx N

int ii char [16] double dd název adresa / proměnná N = nevyužito xxx xxx xxx N xxx xxx N xxx N Struktura (union) - struktura a union jsou složené typy, které "v sobě" mohou obsahovat více proměnných - struktura obsahuje v každém okamžiku všechny své proměnné, union obsahuje (=je "aktivní") pouze

Více

Hornerovo schéma. je algoritmus výpočtu hodnoty polynomu P(x) v bodě x 0. eliminuje výpočet i-té mocniny převodem na postupné násobení.

Hornerovo schéma. je algoritmus výpočtu hodnoty polynomu P(x) v bodě x 0. eliminuje výpočet i-té mocniny převodem na postupné násobení. Hornerovo schéma je algoritmus výpočtu hodnoty polynomu P(x) v bodě x 0 n + n 1 + L + + n n 1 1 P( x) = a x a x a x a eliminuje výpočet i-té mocniny převodem na postupné násobení 0 Vstup: Algoritmus výpočtu

Více

Interpolace Uvažujme třídu funkcí jedné proměnné ψ(x; a 0,..., a n ), kde a 0,..., a n jsou parametry, které popisují jednotlivé funkce této třídy. Mějme dány body x 0, x 1,..., x n, x i x k, i, k = 0,

Více

Offsety KMA/ITG Informační technologie ve vyučování geometrie Offsety ITG 1 / 33

Offsety KMA/ITG Informační technologie ve vyučování geometrie Offsety ITG 1 / 33 Offsety KMA/ITG Informační technologie ve vyučování geometrie Offsety ITG 1 / 33 Motivace Motivace 3-osé obrábění motivaci k zavedení offsetů je možné hledat v obrábění. 3-osé obrábění je obrábění frézou,

Více

DSA, První krok: máme dokázat, že pro left = right vrátí volání f(array, elem, left, right)

DSA, První krok: máme dokázat, že pro left = right vrátí volání f(array, elem, left, right) Indukcí dokažte následující výrok: pokud lef t a right jsou parametry funkce f a platí left right, pak volání f(array, left, right) vrátí minimální hodnotu z hodnot všech prvků v poli array na indexech

Více

Více o konstruktorech a destruktorech

Více o konstruktorech a destruktorech Více o konstruktorech a destruktorech Více o konstruktorech a o přiřazení... inicializovat objekt lze i pomocí jiného objektu lze provést přiřazení mezi objekty v původním C nebylo možné provést přiřazení

Více

Polymorfismus. Časová náročnost lekce: 3 hodiny Datum ukončení a splnění lekce: 30.března

Polymorfismus. Časová náročnost lekce: 3 hodiny Datum ukončení a splnění lekce: 30.března Polymorfismus Cíle lekce Cílem lekce je vysvětlit význam pojmu polymorfismus jako základní vlastnosti objektově orientovaného programování. Lekce objasňuje vztah časné a pozdní vazby a jejich využití.

Více

Rekonstrukce ploch: Polygonální a analytická reprezentace Vybrané metody aproximace ploch

Rekonstrukce ploch: Polygonální a analytická reprezentace Vybrané metody aproximace ploch Rekonstrukce ploch: Polygonální a analytická reprezentace Vybrané metody aproximace ploch Petra Surynková Matematicko-fyzikální fakulta Univerzita Karlova v Praze petra.surynkova@mff.cuni.cz Přehled (1)

Více

PB161 Programování v jazyce C++ Přednáška 4

PB161 Programování v jazyce C++ Přednáška 4 PB161 Programování v jazyce C++ Přednáška 4 Přetěžování funkcí Konstruktory a destruktory Nikola Beneš 9. října 2017 PB161 přednáška 4: přetěžování funkcí, konstruktory, destruktory 9. října 2017 1 / 20

Více

Aproximace funkcí. x je systém m 1 jednoduchých, LN a dostatečně hladkých funkcí. x c m. g 1. g m. a 1. x a 2. x 2 a k. x k b 1. x b 2.

Aproximace funkcí. x je systém m 1 jednoduchých, LN a dostatečně hladkých funkcí. x c m. g 1. g m. a 1. x a 2. x 2 a k. x k b 1. x b 2. Aproximace funkcí Aproximace je výpočet funkčních hodnot funkce z nějaké třídy funkcí, která je v určitém smyslu nejbližší funkci nebo datům, která chceme aproximovat. Třída funkcí, ze které volíme aproximace

Více

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write("\nPrumerna teplota je {0}", tprumer);

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write(\nPrumerna teplota je {0}, tprumer); Pole (array) Motivace Častá úloha práce s větším množstvím dat stejného typu o Př.: průměrná teplota za týden a odchylka od průměru v jednotlivých dnech Console.Write("Zadej T pro.den: "); double t = Double.Parse(Console.ReadLine());

Více

Dědičnost. Časová náročnost lekce: 3 hodiny Datum ukončení a splnění lekce: 23.března

Dědičnost. Časová náročnost lekce: 3 hodiny Datum ukončení a splnění lekce: 23.března Dědičnost Cíle lekce Cílem lekce je naučit se pracovat a využívat dědičnosti při návrhu a tvorbě programů. Lekce je zaměřena hlavně na jednoduchou dědičnost. Bude rovněž vysvětlen rozdíl mezi dědičností

Více

Jazyk C++, některá rozšíření oproti C

Jazyk C++, některá rozšíření oproti C Karel Müller, Josef Vogel (ČVUT FIT) Jazyk C++, některá rozšíření oproti C BI-PA2, 2011, Přednáška 1 1/22 Jazyk C++, některá rozšíření oproti C Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra

Více

Šablony, kontejnery a iterátory

Šablony, kontejnery a iterátory 7. října 2010, Brno Připravil: David Procházka Šablony, kontejnery a iterátory Programovací jazyk C++ Šablony Strana 2 / 21 Šablona funkce/metody Šablona je obecný popis (třídy, funkce) bez toho, že by

Více

Operační systémy. Cvičení 4: Programování v C pod Unixem

Operační systémy. Cvičení 4: Programování v C pod Unixem Operační systémy Cvičení 4: Programování v C pod Unixem 1 Obsah cvičení Řídící struktury Funkce Dynamická alokace paměti Ladění programu Kde najít další informace Poznámka: uvedené příklady jsou dostupné

Více

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I 2011 Jan Janoušek BI-PJP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Programová realizace DKA typedef enum {q0, q1,... qn,

Více

Generické programování

Generické programování Generické programování Od C# verze 2.0 = vytváření kódu s obecným datovým typem Příklad generická metoda, zamění dva parametry: static void Swap(ref T p1, ref T p2) T temp; temp = p1; p1 = p2; p2 =

Více

INTERPOLAČNÍ POLYNOM.... hledaná funkce (polynom nebo funkce vytvořená z polynomů), pro kterou platí

INTERPOLAČNÍ POLYNOM.... hledaná funkce (polynom nebo funkce vytvořená z polynomů), pro kterou platí 8 Řešení Lagrangeovy a Hermiteovy úlohy interpolace 1 INTERPOLAČNÍ POLYNOM aproximace zadaných hodnot nebo hledané funkce f funkcí F (x) (polynomem) F musí být k f co nejblíže značení: P (n) množina všech

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

Spojová implementace lineárních datových struktur

Spojová implementace lineárních datových struktur Spojová implementace lineárních datových struktur doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB

Více