Středoškolská technika 2017 PROGRAMY PRO PROSTOROVÉ ZOBRAZOVÁNÍ NĚKTERÝCH TĚLES

Podobné dokumenty
Návod k použití softwaru Solar Viewer 3D

Téma: Arkanoid. X36SOJ Strojově orientované jazyky Semestrální práce. Vypracoval: Marek Handl Datum: červen 2006

Rasterizace je proces při kterém se vektorově definovaná grafika konvertuje na. x 2 x 1

Digitální fotografie II. Mgr. Milana Soukupová Gymnázium Česká Třebová

11 Zobrazování objektů 3D grafiky

Jana Dannhoferová Ústav informatiky, PEF MZLU

ak. rok 2013/2014 Michal Španěl,

Copyright 2013 Martin Kaňka;

Trojúhelníky. a jejich různé středy. Součet vnitřních úhlů trojúhelníku = 180 neboli π radiánů.

Obsah. Proč právě Flash? 17 Systémové požadavky 17. Jak používat tuto knihu 18 Doprovodný CD-ROM 19

Fyzikální laboratoř. Kamil Mudruňka. Gymnázium, Pardubice, Dašická /8

Golayův kód 23,12,7 -kód G 23. rozšířený Golayův kód 24,12,8 -kód G 24. ternární Golayův kód 11,6,5 -kód G 11

Radka Veverková Flash

Systém GIMP - tvorba jednoduchých animací a grafiky pro web

Práce s plátnem. Vrácení se o krok zpět CTRL+Z Vrácení se o krok vpřed SHIFT+CTRL+Z Duplikace objektu CTRL+D

5.4.1 Mnohostěny. Předpoklady:

Comenius Logo. Princip programování. Prostředí Comenius Logo

Tělesa Geometrické těleso je prostorový omezený geometrický útvar. Jeho hranicí neboli povrchem je uzavřená plocha. Geometrická tělesa dělíme na

Gymnázium Jiřího Ortena, Kutná Hora. volné rovnoběžné promítání průmětna

zdroj světla). Z metod transformace obrázku uvedeme warping a morfing, které se

Sociomap Viewer Uživatelský manuál. Verze 3

2 Grafický výstup s využitím knihovny

SOFTWARE NA ZPRACOVÁNÍ MRAČEN BODŮ Z LASEROVÉHO SKENOVÁNÍ. Martin Štroner, Bronislav Koska 1

GYMNÁZIUM CHEB SEMINÁRNÍ PRÁCE

Fraktály. Ondřej Bouchala, George Dzhanezashvili, Viktor Skoupý

Fraktály. Kristina Bártová. Univerzita Karlova v Praze 9.prosince

Vyplňování souvislé oblasti

PowerPoint lekce II.

SEMESTRÁLNÍ PRÁCE Z PŘEDMĚTU MODELOVÁNÍ MATLABEM

Programátorská dokumentace

Cvičení podporující prostorovou představivost. Josef Molnár Podpořit prostorovou představivost pomocí cvičení různé úrovně.

5.3.2 Vzdělávací obsah vyučovacího předmětu

RNDr. Martin Pivokonský, Ph.D.

Práce na počítači. Bc. Veronika Tomsová

Využití animací letů kosmických sond ve výuce fyziky

Použití prezentací. K heslovitému sdělení informací. Oživení obrázky, schématy, tabulkami, Nevhodné pro dlouhé texty. Doprovodná pomůcka při výkladu

Copyright 2013 Martin Kaňka;

Josef Pecinovský PowerPoint 2007

Rovnice přímek v rovině

Název: VY_32_INOVACE_PG3303 Pohyb ve 3D prostoru 3DS Max. Vzdělávací oblast / téma: 3D grafika, počítačová grafika, 3DS Max

Počítačová grafika 2 (POGR2)

5 Algoritmy vyplňování 2D oblastí

Programovací stanice itnc 530

Geometrické těleso je prostorově omezený geometrický útvar. Jeho hranicí, povrchem, je uzavřená plocha.

Soubory s reklamami musí mít stejný název jako ta výše uvedené. Stávající soubory reklam budou přepsány.

Vektorové grafické formáty

Základy 3D modelování a animace v CGI systémech Cinema 4D C4D

DUM 18 téma: Cesty a jejich užití v prostředí Gimp

1 Animace. Kapitola 7: Animace 7

Rozšíření bakalářské práce

Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49

Lekce 12 Animovaný náhled animace kamer

VY_32_INOVACE_INF4_12. Počítačová grafika. Úvod

PowerPoint. Animace objektů a textu Tlačítka akcí. Alexandra Severová

Popis softwaru pro sledování pohybu UZ sondy

Animace a geoprostor. První etapa: Animace 3. přednáško-cvičení. Jaromír Landa. jaromir.landa@mendelu.cz Ústav informatiky PEF MENDELU v Brně

Gymnázium Vincence Makovského se sportovními třídami Nové Město na Moravě

3D grafika. Proces tvorby sekvence s 3D modely Sbírání údajů na natáčecím place Motion capture Matchmoving Compositing

BAKALÁŘSKÁ PRÁCE. Optimalizace trojúhelníkových sítí v E 3 a jejich zobrazování / 2000 Jan Doubek

9 Prostorová grafika a modelování těles

Kapitola 8. prutu: rovnice paraboly z = k x 2 [m], k = z a x 2 a. [m 1 ], (8.1) = z b x 2 b. rovnice sklonu střednice prutu (tečna ke střednici)

Multimediální systémy. 11 3d grafika

Otázky z kapitoly Stereometrie

Euklidovský prostor Stručnější verze

Lineární algebra s Matlabem cvičení 3

Geometrické vyhledávání

Hodnocení soutěžních úloh

Popis softwaru pro sledování pohybu UZ sondy

ÚLOHY S POLYGONEM. Polygon řetězec úseček, poslední bod je totožný s prvním. 6 bodů: X1, Y1 až X6,Y6 Y1=X6, Y1=Y6 STANOVENÍ PLOCHY JEDNOHO POLYGONU

Rozvoj prostorové představivosti

Úloha 1. Text úlohy. Vyberte jednu z nabízených možností: NEPRAVDA. PRAVDA Úloha 2. Text úlohy

PROGRAM RP83. Kreslení perspektiv a vyhodnocení rozhledů. Příručka uživatele. Revize Pragoprojekt a.s

Projekt Obrázek strana 135

Kde se používá počítačová grafika

Katedra informatiky, Univerzita Palackého v Olomouci. 27. listopadu 2013

HVrchlík DVrchlík. Anuloid Hrana 3D síť

y ds, z T = 1 z ds, kde S = S

Gymnázium Jiřího Ortena, Kutná Hora

Učební osnovy pracovní

CVIČNÝ TEST 51. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

Úvodem... 9 Kapitola 1 Karetních

PROGRAM RP45. Vytyčení podrobných bodů pokrytí. Příručka uživatele. Revize Pragoprojekt a.s

Základní geometrické tvary

Semestrální práce Mozaika aneb Co všechno umí pan Voronoi

4 Želva se učí nové příkazy

Hydromechanické procesy Hydrostatika

Středoškolská technika SCI-Lab

Zadání soutěžních úloh

Připravil: David Procházka. Vertex Buffer Objects

Staré mapy TEMAP - elearning

Macromedia Flash 8. Druhy animace: Snímek po snímku. F5 vložit snímek (insert frame) F6 vložit klíčový snímek (insert key frame)

Informace o zdroji učebního textu a poučení o jeho užívaní. Petr Broža, Libor Kříž, Roman Kučera, Pavel Nygrýn

Počítačové zobrazování fraktálních množin. J. Bednář*, J. Fábera**, B. Fürstová*** *Gymnázium Děčín **SPŠ Hronov ***Gymnázium Plasy

Návod na použití vizualizačního modulu. Sector 3D verze 1.0

MS OFFICE POWER POINT 2010

Práce s knihovnami. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

Připravil: David Procházka. Projekce

Náležitosti správné prezentace. Schváleno PaedDr. Pavel Trulík, ředitel školy

Předmět: MATEMATIKA Ročník: PRVNÍ Měsíc: učivo:. ZÁŘÍ ŘÍJEN LISTOPAD PROSINEC

Transkript:

Středoškolská technika 2017 Setkání a prezentace prací středoškolských studentů na ČVUT PROGRAMY PRO PROSTOROVÉ ZOBRAZOVÁNÍ NĚKTERÝCH TĚLES Vladimír Štěpnička Střední škola a vyšší odborná škola aplikované kybernetiky s. r. o. Hradecká 1151/9, 500 01 Hradec Králové

Úvod: Dlouhodobě se zajímám o počítačovou grafiku a zobrazování spojené s matematikou. Vytvořit prostorové obrazce, které se budou lišit počtem vrcholů a barvami stěn, mě napadlo při hraní hry Minetest, kdy jsem si chtěl vytvořit vlastní mód do hry a potřeboval jsem si udělat textury přidaných itemů. Programy jsem vyvinul v prostředí mousepad, ke kompilaci byl vždy použitý program GCC. Program pro svůj běh potřebuje grafickou knihovnu Glut. Jako první ze skupiny programů pro vykreslování těles představuji: Program pro zobrazování sférických obrazců Jedná se o interaktivní program, který na monitoru vykresluje a zobrazuje prostorová tělesa. Funguje na principu umístění určitého počtu částic do prostoru. Na základě odpudivých a přitažlivých sil program nasimuluje pohyb částic, které se vzájemně odpuzují a současně jsou přitahovány ke středu, tak, že se rozmístí na povrchu koule ve vrcholech tělesa a program vykreslí pravidelné, symetrické a někdy i nepravidelné těleso v závislosti na počtu navolených vrcholů, anebo program vykreslí těleso s vrcholy v těžištích trojúhelníků, tvořených spojnicemi částic. Program umožňuje přidat nebo ubrat počet částic a s každou změnou vykreslí nové těleso. Program je zpracován jako animace tělesa při pohybu částic v důsledku přitažlivých a odpudivých sil maximální rychlostí 100 snímků za sekundu, takže je možné zaregistrovat postupné uspořádávání částic. Vykreslené těleso je možné vertikálně i horizontálně otáčet. Program pracuje ve třech módech Ukázka zdrojového kódu pro krok simulace: for(a=0;a<n;a++){for(c=xd=yd=zd=0;c<n;c++){ x1=x[a]-x[c]; y1=y[a]-y[c]; z1=z[a]-z[c]; r=x1*x1+y1*y1+z1*z1+0.1; xd+=x1/r; yd+=y1/r; zd+=z1/r; } x[a]+=xd/(n+3); y[a]+=yd/(n+3); z[a]+=zd/(n+3); x[a]/=1.5; y[a]/=1.5; z[a]/=1.5; Ovládání programu společné pro všechny 3 módy: Klávesou + je možné přidávat počet bodů, z nichž se stanou vrcholy tělesa. Klávesou - je možné ubírat počet bodů, z nichž se stanou vrcholy tělesa Klávesami 2 a 8 je možné tělesa otáčet horizontálně Klávesami 4 a 6 je možné tělesa otáčet vertikálně Mód 0 Klávesa D přepne program do módu 0 0. mód

Zobrazuje těleso s vrcholy v bodech, které tvoří částice rozmístěné na povrchu koule na základě odpudivých a přitažlivých sil Vybarví každou plochu jednotnou barvou, rozdílnou od barvy jiných ploch téhož tělesa. Barva každé stěny je dána pořadím částic tvořícím vrcholy. Podle pořadí částic uložených v paměti počítače je zobrazována světlost barev. První částice uložená do paměti je nejtmavší a poslední přidaná částice je nejsvětlejší. Ukázka zdrojového kódu pro vykreslení tělesa if(!mod){glcolor3f(a/(float)n,b/(float)a,c/(float)b); glvertex3f(x[a],y[a],z[a]); glvertex3f(x[b],y[b],z[b]); glvertex3f(x[c],y[c],z[c]);} Obr. 1: Dvacetistěn vykreslený podle módu 0 z různých pohledů Obr 2:Mnohostěn vytvořený podle módu 0 Mód 1 Klávesa F přepne program do módu 1 1. mód Zobrazuje těleso s vrcholy v těžištích trojúhelníků tvořených spojnicemi částic.

Barva každé stěny je dána tím v jakém bodě rovina, v níž se stěna nachází, protíná souřadnicovou osu x a y. Ukázka kódu pro výpočet barev double dx,dy,ex,ey,x1,y1; dx=(x[a]*z[b]-x[b]*z[a])/(z[a]-z[b]); dy=(y[a]*z[b]-y[b]*z[a])/(z[a]-z[b]); ex=(x[a]*z[c]-x[c]*z[a])/(z[a]-z[c]); ey=(y[a]*z[c]-y[c]*z[a])/(z[a]-z[c]); x1=dx*ey-ex*dy; y1=x1/(dx-ex); x1/=(dy-ey); glcolor3f(1,atan(x1)/6.28+0.5,atan(y1)/6.28+0.5); Obr. 3: Tělesa vykreslená podle módu 1 Mód 2 Klávesa S přepne program do módu 2 2. mód Zobrazuje těleso stejně jako mód 0, liší se vybarvením stěn v odstínech šedi tak, že u každého vrcholu je světlost odpovídající pořadí příslušné částice v paměti. Ukázka zdrojového kódu pro výpočet vybarvován stěn v módu 2

if(mod==2){ glcolor3f(a/(float)n,a/(float)n,a/(float)n); glvertex3f(x[a],y[a],z[a]); glcolor3f(b/(float)n,b/(float)n,b/(float)n); glvertex3f(x[b],y[b],z[b]); glcolor3f(c/(float)n,c/(float)n,c/(float)n); glvertex3f(x[c],y[c],z[c]);} Obr. 4: Tělesa vykreslená podle módu 2

Baví mě matematika a zobrazování fraktálů a proto jsem zkusil napsat program pro vykreslování fraktálů ve 3D. Stejně jako u sférických obrazců, jsem do programu zapracoval obě možnosti otáčení, přidal jsem také možnost otáčení vnitřních trojúhelníků a také postupné překreslování obrazců podle navoleného počtu iterací. Aby byl dosažen lepší prostorový efekt použil jsem postupné ztmavení vykreslovaných stěn. Jako druhý ze skupiny programů pro vykreslování těles představuji: L fraktály 3D Jedná se o dva interaktivní programy, které pomocí OpenGL a rekurze vykresluji fraktálni útvary oba fungují na principu umístěni částic do prostoru a následné simulaci přitažlivých a odpudivých sil, tím se ziskají polohy vrcholů, které se následně použijí jako parametry funkce pro vykresleni tělesa (jejím posledním parametrem je počet iteraci) a ta zkontroluje jestli je počet iterací 0 a pokud ano vykresli těleso pomocí několika trojúhelníků a pokud ne, provede

rozdělení na dílčí části a ty pak vykreslí tou samou funkci (rekurze) ukázka kódu: #define VERT(A) glvertex3f((a).x/(1+(a).z*mod2),(a).y/(1+(a).z*mod2),(a).z); #define PLUS(A,B,C) C.x=((A).x+(B).x)/2;C.y=((A).y+(B).y)/2;C.z=((A).z+(B).z)/2; #define TRH(A,B,C) VERT(A);VERT(B);VERT(C); int vk5(bod_t a,bod_t b,bod_t c,bod_t d,int n){ bod_t a1,b1,c1; if(!n){float jas; jas=0.6-a.z*0.4; jas*=jas; glcolor3f(jas,jas,jas); TRH(a,b,c); glcolor3f(jas,0,jas); TRH(a,b,d); glcolor3f(jas,jas,0); TRH(b,c,d); glcolor3f(0,jas,0); TRH(a,c,d); return 0; } PLUS(a,d,a1); PLUS(b,d,b1); PLUS(c,d,c1); if(mod1&2)vk5(a1,c1,b1,d,n-1);else vk5(a1,b1,c1,d,n-1);// PLUS(a,c,a1); PLUS(b,c,b1); PLUS(c,d,c1); if(mod1&1)vk5(a1,b1,c1,c,n-1);else vk5(a1,b1,c,c1,n-1);// PLUS(a,b,a1); PLUS(b,c,b1); PLUS(b,d,c1); if(mod1&4)vk5(b,a1,b1,c1,n-1);else vk5(a1,b,b1,c1,n-1);// PLUS(a,b,a1); PLUS(a,c,b1); PLUS(a,d,c1); if(mod1&8)vk5(c1,a1,b1,a,n-1);else vk5(a,a1,b1,c1,n-1);// } Druhý program je o trochu složitější, protože simulace částic nemůže udělat vrcholy krychle a navíc ne ve správném pořadí, takže se simulace provádí ze 6 částic a následně se vyberou tři a jejich polohy se použijí jako vektory podle kterých budou hrany

ukázka kódu: f=0; for(e=2;e< 6;e++) for(d=1;d< e;d++) for(c=0;c< d;c++){ TEZI(bo[e],bo[d],bo[c],xy[f]); if(rang(xy[f])>0.2){e1=e;d1=d;c1=c;c=d=e=10;break;} } f=0;i=0.5; SUM(bo[c1],i,bo[d1],i,bo[e1],i,xy[0]);f++; SUM(bo[c1],-i,bo[d1],i,bo[e1],i,xy[1]);f++; SUM(bo[c1],-i,bo[d1],-i,bo[e1],i,xy[2]);f++; SUM(bo[c1],i,bo[d1],-i,bo[e1],i,xy[3]);f++; SUM(bo[c1],i,bo[d1],i,bo[e1],-i,xy[4]);f++; SUM(bo[c1],-i,bo[d1],i,bo[e1],-i,xy[5]);f++; SUM(bo[c1],-i,bo[d1],-i,bo[e1],-i,xy[6]);f++; SUM(bo[c1],i,bo[d1],-i,bo[e1],-i,xy[7]);f++; vk6(xy[0],xy[1],xy[2],xy[3],xy[4],xy[5],xy[6],xy[7],mod);

Ovládání programů pro vykreslování fraktálů: ovládání je vlastně pro oba programy společné otáčeni 4 -> vlevo 6 -> vpravo 8 -> nahoru 2 -> dolu perspektiva a -> přidat b -> ubrat počet iterací + -> přidat - ->ubrat NULL (crtl 2 nabo ctrl mezera) -> ukončit program Závěr: Programy jsem tvořil sobě i druhým pro radost. Programy jsou zkompilovány pro prostředí LINUX s použitím X11, nicméně je možné zdrojový kód překompilovat do jiných systémů, které obsahují knihovnu Glut.