Diplomová práce 2007 Petr Maštera

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

Download "Diplomová práce 2007 Petr Maštera"

Transkript

1 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA INFORMAČNÍCH TECHNOLOGIÍ Dplomová práce 007 Petr Maštera

2

3 Poděkování Chtěl bych vyjádřt poděkování vedoucímu své dplomové práce Janu Pečvov za jeho užtečné rady př tvorbě programu a za to, že moj prác usměrňoval ke zdárnému konc. Prohlášení Prohlašuj, že tato práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a lteraturu, které jsem př vypracování používal nebo z nch čerpal, jsem uvedl v lteratuře.... Petr Maštera

4 Abstrakt Dplomová práce se zabývá řešením kolzí mez objekty scény a následným vyhodnocením těchto kolzí na základě fyzkálního modelu. Implementace všech aplkací a algortmů je provedena v prostředí Wn3 ve Vsual Studu v programovacím jazyce C++ s využtím grafcké knhovny OpenGL a nadstavby Open Inventor. K prác je přložena pomocná aplkace zabývající se výpočtem fyzkálních velčn. V demonstračních aplkacích jsou mplementovány algortmy pro detekc a vyhodnocení kolzí výbuchem, jednoduchým a fyzkálním odrazem na základě fyzkálních vzorců a vztahů. V hlavní demonstrační aplkac průlet tunelem je mplementován jednoduchý herní engne. Součástí práce je dskuse objevujících se problémů s případným návrhem řešení. Klíčová slova: Detekce kolzí, vyhodnocování kolzí, jednoduchý odraz, jednoduché vyhodnocení kolze, fyzkální odraz, fyzkální vyhodnocení kolze, srážka pevných těles, matce momentu setrvačnost, těžště tělesa, Open Inventor, C++. 3

5 Abstract Ths dploma thess focuses on the collson detecton between scene objects and consequent resoluton of such collsons on the bass of physcal model. The mplementaton of all the applcatons and algorthms s acheved n Wn3 envronment n Vsual Studo usng the programmng language C++; t also employs the graphcal lbrary Open Inventor based on OpenGL. The work also ncludes addtonal applcaton for the calculaton of physcal values. The demo applcatons nvolve algorthms for detecton and resoluton of explosve collson by the use of a smple and physcal reflecton on the bass of physcal formulas and relatonshps. The man demo applcaton called tunnel transt ncorporates a smple game engne. The thess also ncludes a dscusson over the aroused problems wth collson solvng and some suggestons how to overcome them. Key words: Collson detecton, collson resoluton, smple reflecton, smple collson resoluton, physcal reflecton, physcal collson resoluton, collson of rgd bodes, nerta tensor, centre of mass, Open Inventor, C++. 4

6 Obsah Obsah...5 Úvod...7. Základní pojmy Vektorová rovnce přímky Hessův normálový tvar rovnce rovny Vzájemná poloha přímky a rovny...9. Fyzka..... Pohyb hmotného bodu..... Těžště tělesa Moment setrvačnost a matce setrvačnost Detekce kolzí Základní rozdělení detekce kolzí Kolze trojúhelník vs. trojúhelník Obalová tělesa Dělení prostoru Vyhodnocení kolze Jednoduchý odraz Fyzkální odraz Exploze Použté nástroje Knhovna ColDet Knhovna Open Inventor Pomocná aplkace - Velčny Načtení a uložení modelu WRL Rozdělení modelu na voxely Optmalzace průchodu přes objem Problém dostatečné přesnost, analýza Implementace - Aplkace Rozdělení aplkací Prostředí Objekty v prostředí Pohyb v prostředí Správa objektů Implementace Detekce kolze Rozdělení prostoru Kolze obalových těles Kolze na úrovn modelů Implementace Vyhodnocení kolze Exploze

7 9.. Jednoduchý odraz Fyzkální odraz Implementace - Přesnost algortmů Přesnost těžště a matce setrvačnost Zaokrouhlovací a násobná chyba Ovlvnění výsledku Chyba aproxmace a statckého tělesa Chyby knhovny Open Inventoru...6. Etapy vývoje Rozsah ročníkového projektu Rozsah dplomové práce...6 Závěr...64 Lteratura...65 Přílohy

8 Úvod Detekce kolzí objektů je základním problémem př programování grafckých počítačových her. Používá se všude tam, kde potřebujete zjstt, zda jeden objekt (např. střela nebo fgurka nepřítele) zasáhl druhý objekt (vaš fgurku nebo kosmckou loď). S tímto problémem je úzce spjato následné vyhodnocování kolze. Po zjštění kolze může nastat velké množství řešení, které jsou závslé na prostředí a koldujících objektech. Například př srážce rakety a lodě může loď explodovat, př srážce míče se zdí se míč odrazí atd. Příkladů jak vyhodnocovat kolze je nespočet. Některým možnostm se zabývá tato práce. Cílem dplomového projektu je namplementovat algortmy pro detekc a vyhodnocování kolze na základě fyzkálního modelu ve 3D prostoru a demonstrovat je na vhodných příkladech. Cíle, které má tato práce splnt, jsou následující:. Seznámt se s teorí fyzkální srážky dvou pevných těles a kolzních algortmů používaných v počítačové grafce.. Navrhnout a vytvořt program pro výpočet těžště a momentu setrvačnost, které jsou nezbytné pro vyhodnocení srážky dvou pevných těles. 3. Navrhnout algortmy řešící srážku dvou pevných těles na základě fyzkálního modelu. Algortmy popsat. 4. Implementovat navržené algortmy. Vytvořt jednoduchý herní engne využívající daných algortmů. 5. Vytvořt demonstrační aplkac průlet tunelem. 6. Výsledky publkovat na nternetu pod některou z open-sorce lcencí. Cílem práce je vytvořt algortmus smulující co nejreálněj problematku detekce a vyhodnocení kolze. K řešení problému byla použta knhovna Open Inventor a celá škála jejch objektů sloužící pro snadnou mplementac grafckých aplkací. K řešení problémů spojených s pomocnou aplkací (pod názvem Velčny) byla využta knhovna ColDet. Dále byla použta metoda bllboardngu známá z programování grafckých aplkací pod OpenGL. Jako vývojové prostředí pro mplementac bylo zvoleno VsualStudo.net a programovací jazyk C++. Klíčové algortmy projektu, které vysthují zadání projektu jsou: - výpočet těžště - výpočet matce momentu setrvačnost - detekce kolze mez objekty scény - vyhodnocení kolze explozí - vyhodnocení kolze jednoduchým odrazem - vyhodnocení kolze na základě fyzkálního modelu Veškeré mplementované algortmy jsou demonstrovány v aplkacích. Pro tyto aplkace bylo nutné zajstt objekty scény a jejch obsluhu, dále pak pohyb užvatele a kamery. S tím souvsí řada dalších problémů, které bylo třeba v rámc této práce vyřešt. 7

9 . Základní pojmy Pro tuto prác jsou důležté znalost z oboru matematky a fyzky []. Př praktckém použtí fyzkálních a matematckých vzorců v počítačové grafce (př algortmzac vzorců) nemůžeme pracovat ve spojtém prostoru, jako v rovně teoretcké. Př praktckém použtí musíme pracovat pouze v dskrétním prostoru, který je v počítačové grafce reprezentován kartézskou souřadnou soustavou. Proto jsou nezbytné základní znalost geometre, konkrétně vektorový a matcový počet a analytcká geometre []. Klíčovým znalost z oboru geometre jsou polohové vztahy základních geometrckých prmtv bod, přímka, rovna, z nchž s vybrané nyní blíže popíšeme... Vektorová rovnce přímky Na základě znalost geometre [] uvažujme přímku p určenou dvěma různým body A, B. Směrovým vektorem přímky p rozumíme lbovolný nenulový vektor, který je kolneární s vektorem u = AB = B A. Pro lbovolný bod X na přímce p platí: X A = t( B A) = tu, t R (.) Tak dostáváme tzv. vektorovou rovnc přímky p: X = A + tu, t R (.) V této rovnc užíváme symbolů X, A, B, které označují body, ncméně zde se jedná o polohové vektory X, A, B daných bodů (vz. obr..). Symbolem t je označen tzv. parametr. Bodu A, resp. B, přísluší parametr t = 0, resp. t =. Uvedená vektorová rovnce přímky je formálně stejná pro vyjádření přímek v lbovolném eukldovském prostoru, tj. v E, resp. v E3, ale v eukldovských prostorech vyšších dmenzí. Obr.. 8

10 .. Hessův normálový tvar rovnce rovny Na základě poznatků z geometre [] můžeme rovnu popsat tak, že vektory b = B A a c = C A vynásobíme vektorově a označíme n = b c (vz. obr..). Vektor n, tzv. normálový vektor rovny, je kolmý k nekolneárním vektorům b a c (tedy vektor n je směrovým vektorem kolmce k rovně). Hessův normálový tvar rovnce rovny ρ představuje podmínku: X A n = (.3) ( ) 0 kde X je lbovolný (obecný) bod rovny. Vycházíme z toho, že pro X A musí být vektory XA a n kolmé. Je-l X = A, pak vektor XA je nulový a daný vztah (.3) je splněn. Obr...3. Vzájemná poloha přímky a rovny Na základě znalostí z oblat geometre [] nechť je přímka p daná vektorovou rovncí (.) a rovna Hessovým normálovým tvarem (.3): X = A + tu (.4) X B n = (.5) ( ) 0 O vzájemné poloze přímky p a rovny lze rozhodnout na základě skalárního součnu u n směrového vektoru přímky a normálového vektoru rovny, případně vektoru příčky AB. Klasfkace vzájemné polohy přímky a rovny je uvedena v tabulce. ( u 0, n 0 ). u n = 0 ( B A) n = 0 p n ( A) n 0 B rovnoběžnost p n u n 0 různoběžnost Tab.. Určení průsečíku v případě různoběžné přímky a rovny provedeme pomocí výpočtu příslušného parametru t z rovnce (.4). Je-l bod X společným bodem přímky a rovny, plyne z (.5) a z (.4) po jednoduché úpravě: 9

11 [( A B) + tu] n = 0 (.6) Pro parametr t získáme lneární rovnc: A B n + t u n = (.7) ( ) ( ) 0 která má jedné řešení t 0, neboť skalární součn u n 0. Hledaným průsečíkem je bod: P = A + t0 u (.8) 0

12 . Fyzka Pro každý objekt potřebujeme znát velčny a vztahy, které popsují chování tohoto objektu v prostoru a čase [, 3, 4, 5]. Lbovolný objekt pro zjednodušení dočasně nahradíme hmotným bodem [, 3, 5]... Pohyb hmotného bodu Obr.., Obr.. Pro popsání pozce hmotného bodu v kartézském souřadném systému potřebujeme znát vektor pozce r (poston): ( x, jy, kz) = ( x, y z) r =, (.) kde, j, k reprezentuje jednotkový vektor a x, y, z kartézské souřadnce (vz. obr.). Vektorovou velčnou, která udává změnu polohy v čase, je rychlost v (velocty) (vz. obr..): dr dx jdy kdz v = = + + = [ x&, y&, z& ] (.) dt dt dt dt Změnu rychlost v čase naopak udává zrychlení a (acceleraton): dv a = (.3) dt Další vektorovou velčnou je síla F (force), která působí na těleso a ovlvňuje tak jeho zrychlení v závslost na hmotnost tělesa: F = ma (.4) Z této rovnce (.4) poté odvodíme vztah pro výpočet zrychlení v závslost na součtu všech působících sl: F a = (.5) m

13 Pro další velčny je třeba rozlšovat o jaký pohyb v prostoru se jedná. Obecně jsou vztahy ovlvňující těleso rozděleny na přímočarý pohyb (lnear), nazývaný také translační pohyb, a na pohyb po kružnc (angular), nebo-l rotační pohyb.... Přímočarý pohyb Pro přímočarý pohyb vyjadřuje hybnost míru setrvačnost tělesa. Hybnost p (momentum) závsí na hmotnost a rychlost tělesa: p = mv (.6) Ze vzorce (.4) a (.6) získáme druhý Newtonův zákon, tzv. zákon zachování hybnost: dv d dp F = ma = m = ( mv) = (.7) dt dt dt nebo také: p = t p = Fdt + p (.8) t0 t 0 p p0 = Fdt = I (.9) kde I je mpuls síly působící na částc, který je stejný jako změna hybnost částce. Hybnost částce je ovlvňována působící slou (.8). t0... Pohyb po kružnc Pro pohyb po kružnc potřebujeme znát moment síly, nebo-l točvý moment M (torque): dp d M = r F = r = ( r p) (.0) dt dt kde F je působící síla a r je rameno této síly, tedy polohový vektor částce vůč středu otáčení. Vzorec (.0) můžeme také zapsat jako: dh M = (.) dt z čehož plyne: H = r p (.) kde H je úhlový moment (angular momentum)... Těžště tělesa Pokud se chceme přblížt skutečnost, nesmíme uvažovat objekt jako hmotný bod, ale jako soustavu hmotných bodů, resp. pevné těleso [, 3, 4, 6, 7, 8]. Jelkož se př prác na počítač pohybujeme v dskrétním prostoru, nemůžeme dosáhnout reprezentace objektu jako pevného spojtého tělesa a tudíž musíme všechny rovnce řešt dskrétně. Právě kvůl dskrétnímu řešení není v prax

14 trvální získat jednotlvé velčny, jako je např. těžště tělesa, a proto v této prác uvádím společně s fyzkálním vztahy také algortmy pro jejch výpočet. Obr.3, Obr..4, Obr..5 Začneme výpočtem těžště hmotného bodu (centre of mass) (vz. obr..3), také nazývaným jako první moment hmoty q (frst mass moment): q = rm (.3) Těžště celé soustavy je magnární bod (vz. obr..4), a to takový, že působení gravtační síly na něj má stejný účnek jako působení na celé těleso, resp. soustavu: q = q = r m = m rcm = mtotal rcm (.4) kde rcm je vektor polohy těžště a m total je celková hmotnost tělesa. Důležtý je především vektor pozce těžště (vz. obr..5). Ze vzorců (.), (.3) a (.4) dostáváme: r m m x m y m z q = = = r CM,, (.5) m total m m m m... Algortmy pro výpočet těžště Na základě vzorce (.5) můžeme vypočítat polohu těžště pro lbovolnou soustavu bodů, nebo pro lbovolný objekt s konzstentním rozložením hmoty, a to za předpokladu, že tento objekt rozdělíme na určtý konečný počet hmotných bodů. Těmto bodům se v počítačové grafce přezdívá voxely. Podobně jako v D rozměru je nejmenším elementem pxel, tak v 3D prostoru jím je voxel. Tedy tzv. voxel je nejmenším elementem v trojrozměrném prostoru, který je přesně defnován třem souřadncem (polohovým vektorem). Pokud bychom měl těleso reprezentované pomocí voxelů, je algortmus na výpočet těžště poměrně jednoduchý. Za předpokladu, že hmotnost všech voxelů je stejná, postačí sečíst jednotlvé souřadnce všech voxelů a podělt je jejch počtem. Náznak algortmu v pseudokódu jazyka C: 3

15 Vynuluj souřadnce těžště For (přes všechny voxely){ K souřadncím těžště přčt souřadnce voxelu } každou souřadnc těžště vyděl počtem voxelů Ve většně případů je těleso reprezentováno v počítačové grafce v podobě trojúhelníkového modelu, který ovšem není vhodný pro výpočet těžště. Takový trojúhelníkový model je nutno rozdělt na výše zmíněné voxely, resp. procházet přímo objemem tělesa. Algortmus je proto komplkovanější. Je třeba posunovat fktvní ukazatel přes celý objem tělesa a sčítat souřadnce jednotlvých elementárních částí (voxely). Tento algortmus je v podstatě vyčíslením určtého ntegrálu přes objem tělesa v dskrétním prostoru, čl suma uvedená ve vzorc (.5). Náznak algortmu [9] v pseudokódu jazyka C: Vypočítej boundng box tělesa Vynuluj souřadnce těžště a počet voxelů For (přes každý voxel boxu ve směru osy x ) For (přes každý voxel boxu ve směru osy y ) For (přes každý voxel boxu ve směru osy z ) If (leží voxel uvntř tělesa){ K souřadncím těžště přčt souřadnce voxelu Inkrementuj počet voxelů } Každou souřadnc těžště vyděl počtem voxelů Hlavním otázkou však zůstává jak poznáme, že se nacházíme uvntř nebo vně tělesa. Tento problém lze řešt například pomocí pouštění paprsku (ray) skrz těleso v nějaké z os. V místě, kde detekujeme lchou kolz, vstupujeme paprskem do tělesa, naopak v místě, kde detekujeme sudou kolz, vystupujeme paprskem z tělesa..3. Moment setrvačnost a matce setrvačnost Obdobně jako u těžště zde musíme brát objekt jako soustavu hmotných bodů, resp. pevné těleso [, 3, 4, 6, 7, 8]. Takto př stanovení momentu setrvačnost je většna rovnc počítána v dskrétní rovně. Níže (vz. kaptola.3..) jsou uvedeny algortmy, kterým se moment setrvačnost počítá v prax. Newtonův první zákon říká, že každé těleso setrvává v kldu nebo v rovnoměrném přímočarém pohybu, dokud není nuceno působením vnějších sl svůj stav změnt []. Mírou setrvačnost hmoty tělesa př translačním a rotačním pohybu je moment setrvačnost I (Moment of Inerta) [, 3, 4, 6, 7, 8]. Moment setrvačnost nezávsí jen na hmotnost objektu, ale také na jejím rozložení v tělese, proto dvě stejně těžká tělesa mohou mít jný moment setrvačnost. 4

16 Obr..6, Obr..7 Pro zjednodušení začneme opět s jednou částcí, u které určíme její moment setrvačnost I, také nazývaný jako druhý moment hmoty (second mass moment): I = mr (.6) kde m je hmotnost tělesa a r je nejkratší vzdálenost od osy rotace (vz obr..6). Př srovnání se vzorc (.3) a (.6) vdíme rozdíl pouze v mocnně vektoru, proto rozšíření na soustavu hmotných bodů je obdobné jako u těžště: I = m r (.7) Z této rovnce (.7), a na základě obrázku.7, odvozujeme následující: I = m R = m ( r sn θ ) = m r n = m ( r n) ( r n) (.8) kde r je pozce každé částce, a n je jednotkový vektor osy rotace. Protože se pohybujeme v kartézském souřadném systému můžeme psát: x r = x + y j + zk = y (.9) z cosα n = cosα + cos βj + cos χk = cosβ (.0) cos χ Aplkujeme rovnce (.9) a (.0), současně s převodem vektoru r na skew-symmetrc matrx, na rovnc (.8). Matce skew-symmetrc matrx je ekvvalentní vektorovému součnu, v podstatě reprezentuje 3D prostorový vektor v matc 3x3. Tím dostáváme odvození: 5

17 6 ( ) ( ) ( ) ( ) ( ) [ ] α χ χ β β α χ β α α β χ α β χ α β χ α β χ α β χ α β χ χ β α χ β α cos cos cos cos cos cos cos cos cos cos cos cos cos cos cos cos cos cos cos cos cos cos cos cos cos cos cos cos cos cos cos cos cos ZX YZ XY ZZ YY XX I I I I I I y x x z z y m y x x z z y y x x z z y m x y x z y z x y x z y z m n r n r m I = + + = = = = (.) kde: ( ) ( ) ( ) ( ) ( ) ( ) = = = = = = + = + = + = ZY YZ ZX XZ YX XY ZZ YY XX z y m I I z x m I I y x m I I y x m I x z m I z y m I ; ; ; ; (.) přčemž XX I, YY I, ZZ I se nazývají hlavní momenty setrvačnost (moment of nerta) a XY I, YX I, XZ I, ZX I, YZ I, ZY I se nazývají devační momenty setrvačnost (produkt of nerta). Pokud je střed soustavy souřadnc O přesně v těžšt tělesa, je hmota rozprostřena rovnoměrně kolem všech os, a proto devační momenty setrvačnost jsou nulové..3.. Úhlový moment Obr..8

18 7 Úhlový moment pevného tělesa, resp. soustavy hmotných bodů, můžeme vypočítat tak, že sečteme jednotlvé momenty hmotných bodů (.) [, 3, 6, 7, 8]: = r p H (.3) Dosazením vzorce (.6) do vzorce (.3) dostáváme: = ( ) v m r H (.4) kde v je rychlost hmotného bodu opsujícího kružnc. Tuto rychlost vypočítáme jako vektorový součn úhlové rychlost a vzdálenost od osy otáčení: r v = ω (.5) Dosazením vzorce (.5) do předchozího (.4) dostáváme: ( ) [ ] = r r m H ω (.6) Výše uvedené vzorce korespondují s obrázkem.8. Uvažujeme-l tedy kartézský souřadný systém, můžeme obdobně jako u vztahu (.) za použtí skew-symmetrc matrx odvodt následující vzorec: ( ) [ ] ( ) ( )( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) = = = = = z y x z y x z y x z y x y x x z z y x y x z y z y x m y z m x z m z y m x z m z y m z x m y x m z y m y x y z x z z y x z x y z x y x z y m x y z x y z x y x z y z m z y x x y x z y z m r r m H ω ω ω ω ω ω ω ω ω ω ω ω ω ω ω ω ω ω ω ω ω ω ω ω ω (.7) Do vzorce (.7) dosadme výrazy (.), pomocí kterých výraz upravíme do jednoduší podoby: ω ω ω ω I I I I I I I I I I H z y x ZZ ZY ZX YZ YY YX XZ XY XX = = (.8)

19 kde I je matce setrvačnost (Inerta Tensor). Matce setrvačnost reprezentuje rozložení hmoty vůč všem osám procházejícím počátkem a je konstantní pro dané těleso. Výsledný moment tělesa v prostoru je pak dán součnem matce setrvačnost a úhlové rychlost objektu..3.. Algortmy pro výpočet matce setrvačnost Matce setrvačnost, resp. moment setrvačnost, je pro některá tělesa známa []. Pro lbovolné těleso je ale nutné tento tensor vypočítat. Jak je zřejmé ze vzorce (.), algortmus na výpočet matce setrvačnost musí projít všechny dskrétní hodnoty, tzn. že tento algortmus bude podobný algortmu na výpočet těžště [9, 0]. Níže uvedený náznak algortmu v pseudokódu jazyka C je použtelný pro těleso reprezentované trojúhelníkovým modelem: Umíst souřadný systém do těžště tělesa Vypočítej boundng box tělesa Vynuluj matc setrvačnost (IT) a počet voxelů For (přes každý voxel boxu ve směru osy x ) For (přes každý voxel boxu ve směru osy y ) For (přes každý voxel boxu ve směru osy z ) If (leží voxel uvntř tělesa){ ( y + z ) xy IT = IT + yx ( z + x ) zx Inkrementuj počet voxelů } matc setrvačnost vyděl počtem voxelů zy xz ( ) yz x + y Algortmus je v základu stejný jako algortmus pro výpočet těžště, proto se problém s rozdělením na voxely řeší stejně jako u algortmu pro těžště. Jednoduší verze algortmu pro těleso reprezentované voxel je opět skoro stejná jak u těžště, jen se lší v samotném výpočtu. Pokud má matce setrvačnost reprezentovat těleso, které bude rotovat kolem své osy (tedy kolem těžště), musí být souřadný systém umístěn právě v těžšt. Proto platí, že pokud počítáme obě velčny (těžště matc setrvačnost), není možné je počítat v jednom průchodu. Nejprve je tedy nutné vypočítat těžště, a poté umístt počátek souřadného systému do získaného bodu. Tyto výpočty se provádí s lokálním souřadncem modelu, a ne s globálním (world) souřadncem. 8

20 3. Detekce kolzí Detekce kolzí hledá stavy, kdy dva objekty v prostoru pronkají do sebe [,, 3, 4, 5, 6, 7, 8, 9, 0]. Tento stav se nazývá kolze a obvykle je nechtěný. Patří mez často řešené problémy př programování počítačových her. Dále se detekce kolzí používá například v: - Robotka (plánování cesty robota) - Anmační a smulační systémy (test konzstence scény, fyzkální modelování) - CAD, strojírenský průmysl (robustní a numercky stablní mplementace) - Molekulární modelování 3.. Základní rozdělení detekce kolzí Dělení kolzí probíhá především na základě plynoucího času, tzn. pro statckou scénu, dskrétní a dynamckou [] Statcká detekce kolzí Detekce testu kolze se provádí pouze pro statckou scénu (vz. obr. 3..). Obr Pseudo-dynamcká detekce kolzí V tomto případě se provádí testy na dskrétní množně konfgurací objektu odpovídající jeho pohybu (vz. obr. 3.). Tento druh detekce je nejčastěj používán pro detekc kolzí v počítačových hrách. Přesnost detekce závsí na velkost dskrétního kroku. Největším problémem pseudodynamcké detekce je proskočení objektu tenkou překážkou. Jak je znázorněno na obrázku 3. mez snímkem n a snímkem n+ dojde k tomuto proskočení. Na snímku n an n+ nedojde k detekc, ale př skutečném pohybu by ke srážce došlo. U klascké dskrétní metody detekce se v každém kroku smulace ntegrují fyzkální velčny, na základě kterých se mění poloha natočení objektu. Př pseudo-dynamcké detekc mohou nastat dva 9

21 stavy, nekolzní stav a průnk objektů. Výsledkem detekce je pak průnk dvou těles, resp. všechny koldující trojúhelníky (vz. obr 3.). Obr Dynamcká detekce kolzí Testuje se prostor vznklý pohybem objektu. Tato detekce je na počítačích, které pracují v dskrétních hodnotách, nerealzovatelná. Proto se na počítačích používají vylepšené nebo specalzované pseudo-dynamcké metody. Obr 3.4 0

22 3..4. Optmalzovaná pseudo-dynamcká detekce kolzí Př optmalzované pseudo-dynamcké detekc se v stuac, kdy dojde k průnku nebo neřeštelné kolz, použje metoda půlení ntervalu (vz obr. 3.5), ve které se vrátíme v čase a zmenšíme krok na polovnu. S takto zmenšeným krokem provedeme všechny ntegrace znovu a vyhodnotíme kolz. Tuto operac opakujeme dokud nedosáhneme požadované přesnost (vz. obr. 3.5). Detekce kolzí představuje v reálných stuacích komplexní problém, protože se často musí řešt srážky velkého množství složtě tvarovaných těles. Tento komplexní problém se rozpadá na dva hlavní podproblémy. Prvním podproblémem je zjednodušení složtého tvaru těles tak, aby se složté výpočty kolzí na úrovn trojúhelníků nemusely provádět pro všechna tělesa ve skupně. Tento problém se řeší použtím obalových těles. Druhým podproblémem je rozdělení velkého počtu objektů na menší skupny, což nazýváme dělení prostoru. V následujících kaptolách s řešení těchto problémů detalněj popíšeme. Obr Kolze trojúhelník vs. trojúhelník Vesměs veškeré objekty v počítačové grafce jsou reprezentovány trojúhelníkovým modelem, proto je algortmus detekce kolze mez dvěm trojúhelníky základem [3, 5, 6, 7, 9, 0]. As nejjednodušší algortmus hledající kolz mez dvěma lbovolným trojúhelníky odvodíme ze znalostí uvedených v kaptole. Základní pojmy. Exstují však optmalzované, lepší č rychlejší verze tohoto algortmu, jako například A Fast Trangle-Trangle Intersecton Test [9] nebo A fast trangle to trangle ntersecton test for collson detecton [0]. Základní úvaha je taková, že pokud lbovolná hrana jednoho z trojúhelníků prochází obsahem druhého trojúhelníku, dochází k průnku těchto trojúhelníků. Pokud s představíme vždy jeden z trojúhelníků jako rovnu, můžeme s druhý trojúhelník představt jako tř úsečky, resp. přímky, které tento trojúhelník tvoří (vz obr. 3.6). Pro každou přímku poté vypočítáme její průsečík s plochou. Jakmle jeden z průsečík leží v ploše ohrančené trojúhelníkem, pak jsme nalezl průsečík obou trojúhelníků. Pokud jsme však průsečík nenašl, můžeme stuac obrátt a vyměnt úlohy trojúhelníků. Trojúhelník, který tvořl plochu je nyní reprezentován přímkam a druhý trojúhelník naopak tvoří plochu.

23 Obr. 3.6, Obr Nalezení průsečíků Výpočet je třeba započít určením rovnc přímek a rovn, pro které budeme počítat průsečíky. Nechť trojúhelník T má vrcholy V, u 3. Pro trojúhelník T jsou vrcholy V, V, V 3 a vektory mez těmto vrcholy jsou značeny V, V 3 a vektory rovnce přímek (.) a (.) pak budou mít následující tvar: X X = V = V + tu + tu, t R, t R u, u, u, u, u 3 (vz. obr. 3.7). Vektorové kde je ndex vrcholu, resp. vektoru přléhajícího k vrcholu. Normálu pro jednotlvé trojúhelníky dostaneme vektorovým součtem lbovolných dvou vektorů ramen trojúhelníku, např.: n n = u = u Získáme Hessův normálový tvar rovnce rovny (.3) (vz kaptola. Hessův normálový tvar rovnce rovny): u u ( V ) n = 0 ( V ) n = 0 (3.) (3.) X (3.3) X (3.4) kde jako lbovolný bod na rovně použjeme jeden z vrcholů trojúhelníku, ve vzorc je konkrétně použt V. Nyní vypočítáme všechny průsečíky mez přímkam vzorcem (3.4). Dále průsečíky mez přímkam X a rovnou určenou X a rovnou určenou vzorcem (3.3) (vz. obr. 3.8), podle vzorců (.6), (.7), (.8) uvedených v kaptole.3 Vzájemná poloha přímky a rovny: kde P P = V + t u (3.5) k 0 k 0 = V + t u (3.6) k t 0 je parametr t, vypočítaný pro každou rovnc průsečíků (.7).

24 Obr. 3.8, Obr Pozce průsečíků Pro vypočítané průsečíky P prvního trojúhelníku je nutné ověřt, zda se nacházejí v obsahu druhého trojúhelníku T. To samé je třeba udělat pro průsečíky P a první trojúhelník T. Př určování, zda se průsečík nachází uvntř trojúhelníku, se jž pohybujeme ve D rovně a úloha je zjednodušena na zjštění, zda se bod (průsečík) nachází uvntř trojúhelníků (obecně polygonu). Algortmů řešících tento problém je více, nyní s popíšeme jeden z dobře fungujících [5, 7]. Mějme trojúhelník reprezentovaný vrcholy V, V, V 3. Mez vypočítaným průsečíky (vz. kaptola 3... Nalezení průsečíků) a těmto vrcholy vypočítáme vektor: v = P (3.7) V kde je ndex vrcholu. Za předpokladu, že hledaný bod (průsečík) se nachází uvntř trojúhelníku, musí být součet úhlů všech vektorů směřujících k bodu roven 80 (vz. obr. 3.9). Úhel, který svírají dva vektory, vypočítáme jako: α = arccos v v α α 3 = arccos = arccos ( ) ( v v3 ) ( v v ) Součet všech úhlů musí byt roven 80 ( π ), resp. absolutní hodnota rozdílu součtu úhlů a 80 musí být menší nebo rovna zadané toleranc ε : ( α + α + α ) π ε 3 (3.8) 3 (3.9) Jak se mění prostor vymezený trojúhelníkem pro hledání bodu v závslost na parametru ε znázorňuje obrázek 3.0. Pokud hledáme průsečíky v cyklu je možné cyklus ukončt po prvním průsečíku, který se nachází uvntř druhého z trojúhelníků, protože došlo k nalezení hledaného průnku trojúhelníků. 3

25 Obr Aplkace na kolz polygon vs. polygon Většna těles je v počítačové grafce reprezentována jako trojúhelníkový model, proto je detekce kolze mez těmto modely pouze detekcí kolze mez všem trojúhelníky jednoho modelu a všem trojúhelníky druhého modelu. Algortmy, které hledají přímo kolz mez reálným objekty, jsou proto většnou jen optmalzované algortmy pro detekc trojúhelník vs. trojúhelník. Optmalzace těchto algortmů spočívají především v elmnac počtu porovnávaných trojúhelníků Obalová tělesa Vyhodnocovat detekc přímo mez trojúhelníky je strojově velm náročné, proto se objekty zabalují do tzv. obalových těles [, 4]. Základním problémem je zvolt vhodné obalové těleso, a to tak, aby obklopovalo původní model co nejtěsněj a aby testování dvou obalových těles probíhalo co nejrychlej Sphere Koule (vz. obr. 3.) je nejjednodušším obalovým tělesem. V testu porovnáváme vzdálenost mez dvěma sféram. Její nevýhodou je, že je nejméně ctlvá na tvar tělesa a má největší procento obsaženého volného prostoru AABB Axs Algned Boundng Box (vz. obr. 3.), tzv. osově orentované obalové těleso, je rovněž jednoduché, navíc v testu stačí porovnávat překrytí jednotlvých os. Teoretcky by mělo být nejrychlejší, protože se používají jen operátory porovnání. Je opět málo ctlvé na tvar tělesa OBB Orented Boundng Box (vz. obr. 3.), tzv. orentované obalové těleso, je obtížně vytvořtelné, ale dobře ohrančuje těleso. Test je opět založen na jednoduchých matematckých operacích, je tedy relatvně rychlý. 4

26 K-DOP K-Dscrete Orentaton Polytopes (obr. 3.), tzv. K-vrcholový orentovaný obal, je as nejsložtější na výrobu. V testu se porovnávají rovnoběžné hrany těles. Tento obalový box nejlépe ze všech jmenovaných kopíruje tvar tělesa Dělení prostoru Obr. 3. Prostor je teoretcky nekonečný a obsahuje nekonečné množství těles. V takovéto stuac je téměř nemožné počítat kolze každého objektu s každým. Snaha vyřešt tento problém vedla k zavedení technk dělení prostoru [,, 4]. Základní deou je rozbít prostor na jednotlvé část s podobnou strukturou. Detekce kolzí se potom provádí jen v tomto lokálním podprostoru. Některé metody, kterým lze dělt podprostor jsou popsány v následujících odstavcích Využtí sítě čtyřstěnů Vrcholy trojúhelníků všech statckých těles se propojí s nejblžším vrcholy trojúhelníků ostatních statckých těles a vytvoří tak čtyřstěny. Tyto čtyřstěny a původní tělesa mohou být reprezentovány obalovým tělesem (Boundng boxem) dále jen BB. Příklad ve D je znázorněn na obrázku 3., konkrétní zobrazený BB je osově orentovaný (AABB) a je zobrazen jen v podobě dvou těles. Nejprve tedy určíme všechny čtyřstěny, resp. jejch BB, které protínají hledané těleso D, resp. jeho obal (BB). Na D obrázku 3. to jsou trojúhelníky T a T (pozn. ve 3D to jsou čtyřstěny). Pro určení samotné kolze mez objekty se provádí pouze test kolze všech takových trojúhelníků prostředí, které přléhají k těmto čtyřstěnům, s trojúhelníky objektu D. 5

27 Obr Voxelová mřížka Prostor se rozdělí na mřížku předem daných rozměrů (vz. obr. 3.3). V takto rozděleném prostoru určíme všechny voxely, do kterých spadá objekt F, resp. jeho BB. Na D obrázku 3.3 to jsou voxely (,) a (,). Samotný test kolze se provádí pouze pro trojúhelníky z daných voxelů a trojúhelníky tělesa F. Obr BSP Strom Jednou z hojně využívaných možností jak rozdělt prostor je použtí tzv. stromů [8]. Těchto stromů exstuje celá řada, k těm nejpoužívanějším patří BSP Tree (vz. obr. 3.4). Prostor je rozdělen hyper-plochou tak, aby se v každé jeho polovně nacházelo zhruba stejné množství objektů. Pokud je scéna složena převážně ze statckých objektů, pak jsou rozdělovány jen statcké objekty, jako je tomu na obrázku 3.4. V případě scén, u kterých je toto schéma nedostačující, tzn. převažuje počet dynamckých objektů, je třeba jednou za čas, např. po přesunu většího počtu 6

28 objektů, strom znovu přerozdělt. Samotný test se provádí mez aktuálním lstovým objektem a BB testovaného objektu. Na základě polohy BB a dělící hyper-plochy se rozhodne o postupu stromem. Ostatní stromové algortmy, jako např. K-D-Tree[8], Quad-Tree [8] a jejch modfkace, se většnou lší ve formě uložení dat ve stromu a v počtu a druhu použtých hyper-ploch. Obr Herarche obalových těles Prostor lze také rozdělt jen pomocí obalových těles, které však uspořádáme do stromu. Takovýto strom může být tvořen například z obalových těles typu koule (vz. obr. 3.5). Ncméně, pro strom lze využít ostatní obalová tělesa, případně jejch kombnace. Obr

29 4. Vyhodnocení kolze Po zjštění kolze nastává otázka, jak takovou kolz vyhodnott. Vyhodnocení kolze záleží na druhu a účelu aplkace, ve které se kolze odehrává. V našem případě se soustředíme na kolze týkající se počítačových her a jejch vyhodnocování. V počítačových hrách můžeme řešt různé druhy stuací, př kterých kolze nastává, například ve zjednodušené podobě: - srážka pohyblvého objektu a pevné překážky - srážka dvou pohybujících se těles Tyto kolze můžeme také různě vyhodnocovat. Například př nárazu pohyblvého tělesa do pevné překážky (nebo jného pohyblvého tělesa) může pohyblvé těleso explodovat (letící raketa narazí do domu nebo do letadla). Nebo může po detekování kolze dojít k zastavení některého z těles, případně ke vzájemnému klouzání těles (většna soudobých 3D her, kde se ovládaná postava př chůz zastaví o překážku). Dalším častým řešením je také odraz koldujících těles (fyzka v moderních 3D akčních hrách, např. střelba do plechovky). V této dplomové prác se budeme zabývat převážně řešením odrazu, a to na základě reálného fyzkálního modelu srážky dvou pevných těles. Odraz můžeme řešt více způsoby. Jako jednoduchý odraz obalového tělesa sphere (koule) na základě fyzkálních vzorců pro deálně pružnou srážku, kde se v úvahu nebere rotace an okolní vlvy prostředí (tření, odpor vzduchu). A nebo jako fyzkální odraz dvou lbovolných objektů, který se hlouběj opírá o fyzkální zákony a uvažuje jak translační tak rotační pohyb. I v tomto případě bude zanedbáno tření př srážce. Působení dalších vlvů, jako je odpor prostředí, lze zjednodušeně brát v úvahu v podobě působení vnějších sl na těleso. Nakonec s okrajově zmíníme také řešení výbuchu, které se dá provést velm jednoduše a efektně promítnutím anmace výbuchu na plochu kolmou ke kameře. Tato technka se nazývá bllboardng. 4.. Jednoduchý odraz Př jednoduchém odrazu dvou koulí, resp. koule a pevného objektu, nám pomohou fyzkální zákony. Z fyzkálního hledska řešíme škmou dokonale pružnou srážku. Př pružné srážce se obecně mění knetcká energe jednotlvých těles, které se srážky účastní. Celková knetcká energe soustavy před srážkou po srážce je však stejná [] Odraz koule od pevné překážky Vzorec pro odraz koule od pevné překážky je jednoduše odvozen z poučky, kdy úhel odrazu se rovná úhlu dopadu (vz. obr. 4.) []: ( v n) n v = + v (4.) kde v je původní vektor rychlost, v je nový vektor rychlost a n je normála srážky. 8

30 Obr Srážka dvou koulí Níže uvedené vzorce a výpočty vychází z Newtonova zákona zachování hybnost (.6,.7). Stuac př srážce dvou koulí reprezentuje obrázek 4.. Obr 4. Vektory U a U představují rychlost koulí v čase nárazu. Středy obou těles spojuje osa X, na které leží vektory Ux a Ux, což jsou vlastně průměty rychlostí do přímky X. Uy a Uy znázorňují projekce rychlostí těles na osy, které jsou kolmé k ose X. K jejch výpočtu postačí jednoduchý skalární součn. Do následujících rovnc dosazujeme ještě čísla M a M, která vyjadřují hmotnost koldujících koulí. Cílem je tedy vypočítat orentac vektorů rychlost U a U po odrazu, které budou je vyjadřovat nové vektory V a V. Čísla Vx, Vy, Vx, Vy představují opět průměty. Tento postup je jž odvozený například v serálu NeHe [], který se počítačové grafce věnuje. Abychom mohl hledat průměty do jednotlvých os, potřebujeme nejdříve najít osu, která spojuje oba středy (těžště) koulí: 9

31 30 ) ( S S OsaX = (4.) kde S a S jsou polohové vektory středů koulí a OsaX je směrový vektor osy, která spojuje obě koule. Nyní je třeba najít průměty aktuálních rychlostí do jednotlvých os: ( ) ( ) * * U OsaX OsaX U U OsaX OsaX U X X = = (4.3) Y Y X Y U U U U U U = = (4.4) Pomocí projekcí do jednotlvých os získáme nové rychlost: ( ) ( ) ( ) [ ] ( ) Y Y X X X X X U V M M M U U M U M U V / * * * = + + = (4.5) ( ) ( ) ( ) [ ] ( ) Y Y X X X X X U V M M M U U M U M U V / * * * = + + = (4.6) Výsledná rychlost je poté součtem vypočítaných průmětů nových rychlostí: Y X Y X V V V V V V + = + = (4.7) 4.. Fyzkální odraz Pro fyzkální odraz využjeme vzorců uvedených v kaptole. Fyzka. Pro řešení této problematky jsou nutné hlubší znalost v oblast fyzky [3, 4, 5, 6, 7, 8]. Fyzkální odraz budeme řešt ve dvou stuacích, př odrazu tělesa od pevné překážky a př srážce dvou těles navzájem Odraz od pevného objektu Jednodušší případ srážky je stuace, kdy těleso narazí do pevné překážky. V úvahu se totž berou velčny jen jednoho tělesa a snáze zjstíme bod a normálu kolze. Odraz objektu od pevné plochy s nyní popíšeme ve D rovně, kde je snadnější nastínt řešený problém (vz. obr. 4.3).

32 Obr. 4.3 Obrázek 4.3 znázorňuje srážku tělesa A s plošným tělesem v místě P. Vektory (ramena) směřující od středu tělesa k bodu P označíme jako r AP. Dále potřebujeme znát velčny jako rychlost, kterou značíme v A, úhlovou rychlost tělesa ω A a hmotnost tělesa M A. Důležté je rovněž určt normálový vektor srážky, který je př srážce tělesa a pevné překážky normálou rovny, do které objekt narazl. Jedním ze základních výpočtů je výpočet relatvní rychlost: v = v + ω r (4.8) AP A Bereme-l v úvahu normálový vektor, můžeme vypočítat relatvní normálovou rychlost: v norm A AP ( v + r ) n = v n = ω (4.9) AP A kde v norm je relatvní normálová rychlost v místě srážky, od které se budou odvozovat další výpočty. Pokud chceme brát v úvahu jnou než deálně pružnou srážku, musíme tuto rychlost zohlednt koefcentem, který určuje míru odrazvost. Tento koefcent se nazývá koefcent odrazu a značí se písmenem e. Úpravou vzorce (4.9) dostáváme: v norm Vztah mez relatvním rychlostm před a po srážce udává vzorec: A AP = e * v n (4.0) AP AP v n = e * v n (4.) Př vyhodnocování výsledné rychlost objektu musíme znát sílu, kterou se od sebe objekty odrazly. Tato síla se nazývá mpuls síly a značí se J (její výpočet odvodíme pozděj, z následujících vzorců). Díky znalost této síly můžeme stanovt novou rychlost: J v = v + n (4.) M a novou úhlovou rychlost: AP A rap * J ω = ω + n (4.3) I A 3

33 kde I A je moment setrvačnost tělesa (vz. kaptola.3. Moment setrvačnost a matce setrvačnost). Odvozování výsledného mpulzu síly začneme rovncí (4.), do které dosadíme za proměnnou AP v vztah pro výpočet relatvní rychlost (4.8), poté za v a ω vztahy (4.) a (4.3): v AP n = e * v n A A A A ( v + r ) n = e* ( v + ω r ) ω n (4.4) AP AP A J A rap * J v n n r AP n = e M A I + + ω + * A Nakonec z tohoto vztahu vyjádříme mpuls síly J: AP A A ( v + ω r ) n AP J = M A ( + e) * v + I A * [( r n) r ] AP AB n AP (4.5) 4... Srážka dvou těles Obr. 4.4 Pokud se srazí dvě tělesa (vz. obr. 4.4), je stuace podobná jako př srážce tělesa a plošného objektu. Pouze je třeba do výpočtu relatvní rychlost zahrnout vzájemnou relatvní rychlost obou těles: kde následující: v AB = v v (4.6) AP BP v AP v BP vypočítáme ze vzorce (4.8). Vzájemný vztah mez rychlostm je poté AB AB v n = e * v n (4.7) 3

34 Obdobným způsobem jako v předchozím případě odvodíme mpuls síly a to tak, že do vzorce (4.7) dosadíme vztah pro relatvní rychlost (4.6), kde jednotlvé rychlost vypočteme podle vzorce (4.8): v AB n = e* v n AP BP AP AB ( v v ) n = e *( v v ) n A A B B A A B B [( v + ω r ) ( v + ω r )] n = e* [( v + ω r ) ( v + ω r )] n AP AB a konečně výsledné rychlost nahradíme vzorc (4.) a (4.3): v v A B + + = e * J M J M A B BP n + ω n + ω A B A A ( v + ω r ) n Z tohoto vztahu vyjádříme mpuls síly J: J = M A + M B + AP rap * J + n r I A rbp * J + n r I B ( + e) * v * n AP BP AP n n = [( I *( r n) r + ( I *( r n) ) r ]* n A AP AB AP B BP BP BP (4.8) (4.9) (4.0) 4.3. Exploze Exploze je řešena pomocí technky zvané bllboardng []. Technka bllboardngu mění orentac bllboardu (tj. objekt, na který je promítaná textura) tak, aby byl umístěn čelně k cíl, obvykle ke kameře. Tato technka je poměrně populární ve hrách a v dalších aplkacích, které využívají velké množství polygonů. I přes neustálý vývoj grafckých karet narůstá potřeba zpracovávat stále větší počty polygonů. Bllboardng umožňuje tento počet snížt použtím trku (tzv. fnty) s vhodnou texturou. Rozlšujeme dva typy bllboardngu, cylndrcký a sfércký. Ve sfércké verz není žádný problém s orentací objektu. Zato v cylndrckém přístupu je rotace objektu svázána s vektorem rotace, a to obvykle v poztvním směru osy Y. Sfércký přístup se uplatňuje zejména u her, kde je možnost rotovat kamerou ve všech osách, např. vesmírný smulátor. Cylndrcký přístup naopak ve hrách, kde dochází k pohybu po jedné rovně. Exstuje několk technk bllboardngu. Podvodné (cheatng), které jsou rychlé nebo jednoduché, ale neposkytují pravý bllboardng, a pravé, které umožňují nastavení bllboardu čelně ke kameře nebo jnému lbovolnému objektu. Podvodné metody natočí bllboard tak, že normálový vektor bllboardu je shodný s nvertovaným vektorem kamery (vz. obr. 4.5). Pravé metody natáčí bllboard kolmo na kameru (vz. obr. 4.6). 33

35 Obr. 4.5, Obr

36 5. Použté nástroje Cílem tohoto dplomového projektu je namplementovat algortmy pro detekc a vyhodnocování kolzí na základě fyzkálního modelu v jednoduché vrtuální scéně a vytvořt pomocný program pro výpočet potřebných fyzkálních velčn. Pomocný program pro výpočet velčn je mplementován v objektově orentovaném jazyce C++ [, 3] s využtím grafckého nástroje OpenGL s použtím knhovny GLUT (The OpenGL Utlty Toolkt) [4]. Další použtou knhovnou je knhovna ColDet [5]. Algortmy pro detekc a vyhodnocování kolzí jsou demonstrované ve více aplkacích, ncméně všechny aplkace s těmto algortmy byly mplementovány v objektově orentovaném jazyce C++ ve vývojovém prostředí Vsual Studo.net za použtí grafcké knhovny Open Inventor [6, 7]. Použté textury a modely byly vytvořeny v modelovacím studu 3D Studo Max. Tyto modely jsou zjednodušeným verzem modelů poskytnutých dříve pro ročníkový projekt Knhovna pro detekc kolzí mez objekty scény. Více o programovacím jazyce C++ je uvedeno v ctované lteratuře [, 3], pro blžší seznámení s grafckou knhovnou OpenGL postačí dostupné referenční manuály. Nyní s více přblížíme pouze dva použté nástroje, které nejsou všeobecně používané a známé, a to knhovnu ColDet a grafckou knhovnu Open Inventor. 5.. Knhovna ColDet Tato knhovna slouží pro detekc kolzí na trojúhelníkové úrovn. Umožňuje provádět detekce kolzí mez jednotlvým tělesy, mez tělesem a paprskem, mez tělesem a koulí. Dále umí vyhodnott trojúhelníky a bod srážky. 5.. Knhovna Open Inventor Mmo dobře zpracovaného manuálu [7] o knhovně Open Inventor exstuje článek na serveru Open Inventor je knhovna napsaná v C++ a postavená nad OpenGL, která posunuje programátora od prmtvního OpenGL rozhraní na vyšší úroveň a nabízí mu rozsáhlou množnu C++ tříd. Ta podstatně zjednodušuje prác programátora a dokonce často poskytuje vyšší výkon než přímá mplementace v OpenGL. Vyšší výkon je možný díky jstým optmalzacím, které Open Inventor může provádět nad daty scény. Běžný programátor také obyčejně nemá čas provádět proflování a optmalzac renderovacích algortmů. Proto jž vyproflované rutny Inventoru nejsou špatnou volbou. Desgn Open Inventoru vychází z konceptu grafu scény. Tedy, scéna je složena z uzlů - anglcky nodes. Nody jsou různých typů. Jedny nesou nformace o geometr těles (krychle, kužel, model tělesa), další různé atrbuty (barva, textury, souřadnce objektu) a také exstují specální nody, které obsahují seznam jných nodů, anglcky zvané groups. A právě tyto groupy umožňují organzovat ostatní nody do herarchckých struktur zvaných grafy. Takovýto graf nám pak reprezentuje naš scénu. Celou problematku s můžeme hned ukázat na prvním příkladu. 35

37 V tomto příkladu vytvoříme mnmální aplkac zobrazující červený kužel osvětlený jedním světlem. Graf scény, který budeme vytvářet, vypadá takto: Kořen grafu tvoří objekt typu SoSeparator. Předpona So (=Scene Object) se používá pro zabránění kolzím jmen ve vašem projektu s názvy tříd v Open Inventoru. SoSeparator je třída odvozená ze SoGroup, tedy základní třídy udržující seznam jných nodů. Třídu SoSeparator budeme používat místo SoGroup téměř vždy pro její specální vlastnost. Například proto, že dokáže scénu pod sebou předkomplovat do OpenGL dsplay lstu a tím urychlt proces renderování. Když se podíváme pod separátor, zjstíme, že má čtyř syny: kamera, světlo, materál a kužel. První z nch - kamera - je specální nod, který určuje umístění pozorovatele a některé další atrbuty pohledu do scény. Světlo (SoLght) osvěcuje scénu bílým světlem. Následující nod, tedy materál, udává optcké vlastnost kužele, jednoduše řečeno - udává jeho barvu. Posledním nodem je pak vlastní kužel, což je nod specfkující geometr tělesa. Text převzat z [6]. 36

38 6. Pomocná aplkace - Velčny V pomocné aplkac jsou naprogramovány algortmy pro výpočet stálých fyzkálních velčn potřebných pro vyhodnocení kolze na základě fyzkálního modelu. Počítaným velčnam jsou těžště tělesa a matce momentu setrvačnost (nerta tensor). Aplkace, mmo těchto velčn, počítá pro zadaný model jednoduchá obalová tělesa jako je koule (sphere) č osově orentované obalové těleso (AABB). Ovládání pomocné aplkace a náhled jsou přloženy v příloze I. Ovládání pomocné aplkace a screenshot. Př výpočtu těžště je využt složtější algortmus popsaný v kaptole... Algortmy pro výpočet těžště. Obdobně pro výpočet matce setrvačnost je použt algortmus z kaptoly.3.. Algortmy pro výpočet matce setrvačnost. Oba algortmy s jsou podobné, resp. oba musí projít objemem celého tělesa. Víme, že nelze počítat obě velčny (těžště, matc momentu setrvačnost) v jednom průchodu, protože algortmus na výpočet matce setrvačnost musí vycházet z modelu s osou souřadnc umístěnou v těžšt. Proto je celý průchod tělesem realzován dvakrát. 6.. Načtení a uložení modelu WRL Všechny používané modely jsou načteny ze souboru *.wrl, kde je model uložen podle standartu VRML V.0 utf8 [8]. Tento soubor je načten standartním funkcem jazyka C++ a zpracován tak, aby mohl byt použt v knhovně ColDet pro rozdělení modelu na voxely. WRML standart uchovává trojúhelníkový model jako pole vrcholů trojúhelníků a pole ndexů do tohoto pole vrcholů. Knhovna ColDet naopak svůj trojúhelníkový model reprezentuje přímo sledem jednotlvých trojúhelníků. Proto je nutné model překonvertovat z jednoho uložení do druhého, a to načtením vrcholů s postupným ndexováním a ukládáním do třídy knhovny ColDet. Př načítání všech vrcholů jsou zjštěny rovněž maxmální možné souřadnce modelu (tj. prmtvní obalové těleso), které se použjí př tvorbě voxelové mřížky. Př ukládání modelu se ukládají souřadnce tak, aby počátek souřadnc ležel v těžšt modelu. Stejné souřadnce musí být použty pro výpočet matce momentu setrvačnost. Souřadnce se proto přepočítávají jž pro algortmus matce momentu setrvačnost, ale do souboru se ukládají až po ukončení obou výpočtů. A opět se musí převést do standardu WRML. Společně se změněným souřadncem se na konec souboru uloží dodatečné nformace ve standardu WRML Info, které obsahují matc setrvačnost a jednoduchá obalová tělesa. Tato obalová tělesa se vypočítávají přímo př ukládání souřadnc. Pro obalové těleso koule stačí najít maxmální vzdálenost vrcholu od počátku souřadnc a pro obalový kvádr mnmální a maxmální hodnotu v každé ze souřadnc. 6.. Rozdělení modelu na voxely Velkým problémem př aplkac obou zmíněných algortmů je rozdělení trojúhelníkového modelu na jednotlvé voxely. Vhodným řešením je například rozdělt celý prostor, vymezený obalovým tělesem modelu, na jednotlvé voxely pomocí mřížky s danou přesností, resp. s daným 37

39 počtem dělících ploch. Rozdělení modelu pomocí mřížky je zobrazeno na obrázku 6., a to ve všech třech rovnách (XY, YZ, XZ). Obr. 6. Algortmus, který prochází celým objemem tělesa, využívá mřížky a cyklí se přes všechny tř souřadnce. Prvním z řešených problémů je určení, zda se má bod, daný aktuálním souřadncem, započítat č nkol, tedy zda se nachází uvntř nebo vně testovaného tělesa. Jednou z možností řešení je spustt paprsek přes jednu rovnu (ve směru jedné z os) a zjšťovat kolze tohoto paprsku a modelu. Zde přchází na řadu knhovna ColDet a její funkce pro zjšťování kolze tělesa a paprsku. Př spuštění paprsku přes model dojde př první (lché) kolz k vnknutí do tělesa a př druhé (sudé) kolz dojde k opuštění tělesa. Spuštění paprsku z rovny XY přes osu Z znázorňuje obrázek 6., a to včetně vstupního průsečíku P a výstupního P. S výsledným průsečíky lze požadovaného zjštění, zda se nacházím uvntř nebo vně tělesa, dosáhnout více cestam. Záleží na způsobu použté optmalzace nebo konkrétním modelu. Například lze jednoduše porovnávat souřadnce a jako vyhovující zvolt jen ty souřadnce mřížky, které se nacházejí mez průsečíky (na obrázku 6. by takto vyhovovaly dvě souřadnce mřížky). Druhým způsobem je přtáhnout (zaokrouhlt) průsečík na nejblžší souřadnc mřížky. Poté se počítá se souřadncem mřížky mez těmto body, a to buď včetně nebo kromě nch. Tím zde odpadá porovnávání (na obrázku 6. by vyhovovaly 3, resp. souřadnce mřížky). V tomto dplomovém projektu je použta metoda přtažení počítající s přtaženým souřadncem. 38

40 Obr Problém mřížky Př používání voxelové mřížky nastávají určté zásadní problémy, které je nutné řešt. Většna problémů se vztahuje k tenkým částem modelu, jako jsou například křídla stíhačky apod. Př průchodu paprskem dojde v takovém tenkém místě k špatné detekc průsečíků nebo k vůbec žádné detekc, což záleží na zvoleném způsobu vyhodnocování průsečíků (vz. obr. 6.3). Pro modré paprsky (P, P, osa Y) v prvním případě vyhodnocení nedojde k nalezení žádného bodu mřížky (mez průsečíky není žádný bod mřížky). V druhém případě dojde k chybnému vyhodnocení, protože oba průsečíky se přtáhnou ke stejné (horní) mřížce. Nastane taková stuace, že bude lchý počet průsečíků (tento problém bude vysvětlen níže vz kaptola 6... Problém lchého počtu průsečíků). Konkrétně v případě paprsku P dojde k chybnému vyhodnocení na objemu křídla č u paprsku P dojde k chybnému vyhodnocení na trupu stíhačky, který se překrývá s ocasním křídlem. Pro zelené paprsky (P3, P4, osa X) nedojde k vyhodnocení objemu u křídel vůbec, protože mřížka je šrší než tloušťka křídla. Obr. 6.3 V reálných stuacích je mřížka dostatečně drobná, aby byly tyto tenké plochy započítávány, ale přesto dochází na těchto tenkých plochách k nepřesnostem a u extrémně tenkých ploch k chybám. Nepřesnost jsou způsobeny malým počtem započítávaných souřadnc mřížky. 39

41 Chyby vznklé problémem tenkých částí se dají částečně elmnovat pouštěním paprsku přes vhodnou osu nebo pouštěním paprsků postupně přes všechny osy s následným zprůměrňováním výsledků. V aplkac je možné s zvolt přesnost právě přdáním dalšího průchodu (pouštěním paprsku) přes další jnou osu Problém lchého počtu průsečíků Dalším problémem, který může př detekování kolzí nastat, je stuace, kdy spouštěný paprsek narazí na hranu modelu nebo na vrchol modelu (vz. obr. 6.4). Obr. 6.4 Paprsek P narazl na vrchol modelu a paprsek P na hranu, která je rovnoběžná s paprskem. Oba dva případy mají za následek lchý počet průsečíků (P jeden průsečík, P tř průsečíky), podobně jako v případě chyby s přtáhnutím na mřížku. Tento problém nelze vyloučt, lze jej však elmnovat na základě následujícího předpokladu. Př tvorbě modelu dochází k přtažení (zaokrouhlení) také na určtou mřížku přesnost. K tomuto zarovnávání může docházet z více důvodů. Například u některých jednoduchých modelů, kde je přesnost uvedena v celých číslech. Proto můžeme naší voxelovou mřížku záměrně posunout např. o /3 velkost mřížky, a tím se vyhnout průchodům v celých číslech, resp. shodám s mřížkou přesnost modelu. Pokud přesto k chybě způsobené lchým počtem průsečíků dojde, je třeba gnorovat celý objem tohoto konkrétního paprsku, protože nejsme schopn určt, které část jsou uvntř tělesa a které vně. Právě problém shody souřadnc modelu a voxelové mřížky vedl v tomto projektu k velkému počtu chyb způsobených lchým počtem průsečíků. Lepších výsledných hodnot aplkace dosahovala až př jemnějším kroku (přesnější mřížce), který vedl k dlouhé době výpočtu. Po zavedení optmalzace posunutí mřížky je jž procentuální chyba způsobená lchým počtem průsečíků zanedbatelná (vz. analýza v kaptole 6.4. Problém dostatečné přesnost, analýza). 40

42 6.3. Optmalzace průchodu přes objem Zmíněný algortmus hledání těžště (vz. kaptola.. Těžště tělesa) lze optmalzovat díky použtí metody pouštění paprsku. Př korektním průchodu paprsku objemem tělesa získáme dva průsečíky (sudý počet). Standardně se sčítají všechny souřadnce mřížky od lchého (vstupujícího) průsečíku až do sudého (vystupujícího) průsečíku, resp. se sčítají všechny souřadnce mřížky mez těmto průsečíky. Optmalzace spočívá v současném sečtení celého objemu tělesa v část paprsku, která je uvntř modelu. Pokud procházíme objemem například přes rovnu YZ, tzn. paprsek spouštím v ose X, budeme provádět jednoduchý součet lneární řady s X-ovou souřadncí. Sčítáme totž hodnoty souřadnc (x+0,y,z), (x+,y,z), (x+,y,z) (x+,y,z), což přestavuje lneární řadu. Souřadnce Y a Z se v daném průchodu nemění, stačí je tedy jen vynásobt počtem vyhovujících voxelů. Stuace je znázorněna na obrázku 6.5. Obr. 6.5 Pro každý úsek paprsku, který je uvntř tělesa, můžeme provést následující optmalzac (uvedeno v pseudokódu jazyka C), která nahradí poslední for cyklus v použtém algortmu z kaptoly...: For (pro každou část paprsku uvntř tělesa){ N=počet vyhovujících voxelů (uvntř tělesa) Tezste.X= Tezste.X+ N/ * (Pruseck.X+Pruseck.X) Tezste.Y= Tezste.Y+Mrzka.Y*N Tezste.Z= Tezste.Z +Mrzka.Z*N } Optmalzac založenou na stejném prncpu (součet lneární řady) lze využít u algortmu pro výpočet matce momentu setrvačnost, kde ve vzorc (.8), resp. (.) můžeme součet řady uplatnt na devační členy ( I XY, I YX, I XZ, I ZX, I YZ, I ZY ). Členy opačné (v matc symetrcké) se v algortmu nepočítají vůbec, ale přřadí se jako opačné až na konc výpočtu. Pro hlavní členy 4

43 momentu setrvačnost ( I XX, I YY, I ZZ ) tato optmalzace uplatnt nelze, ve vzorc se totž vyskytuje druhá mocnna a sčítaná řada v jedné ose jž není an lneární an geometrcká Problém dostatečné přesnost, analýza Oba výše zmíněné problémy (vz. kaptola 6... Problém mřížky a 6... Problém lchého počtu průsečíků) se dají řešt zpřesněním používané mřížky. I když př zjemňování mřížky roste počet lchých průsečíků, protože se častěj narazí na hranu, výsledná procentuální chyba je však menší. Se zjemňováním mřížky také roste násobná chyba př výpočtu matce momentu setrvačnost, a to kvůl kvadrátu proměnných (.7). Dostatečnou přesnost stanovujeme vždy na konkrétním modelu, a to pomocí analýzy tohoto modelu. Přesnost mřížky lze určt odhadem u jednoduchých č specfckých těles na základě předchozích zkušeností. V této dplomové prác byla provedena analýza nejjednoduššího modelu krychle, jednoduchého modelu jehlanu nejsložtějšího modelu stíhačky. Pro každý model bylo provedeno dostatečné množství analýz. Na základě provedených analýz lze vyvodt závěry pro dostatečnou přesnost kroku Analýza hrubá mřížka Krychle je jedné těleso, u kterého lze jednoduše vypočítat těžště matc momentu setrvačnost. V této prác má použtá krychle stranu o rozměru 500 jednotek. Pokud model krychle umístíme fyzcky do středu souřadné soustavy (vrcholy budou na souřadncích 50 a -50) musí korekce těžště vycházet (0, 0, 0), tedy těžště se nebude posunovat. Pro výpočet matce momentu setrvačnost použjeme vzorec (.7). U krychle jsou však všechny strany stejně dlouhé, proto se výpočet zjednoduší: I XX = IYY = I ZZ = m ( * a ) (6.) Pokud tento vzorec budeme postupně aplkovat na zjemňující se mřížku, zjstíme, že výsledky se v malých krocích velm lší. V příloze II. Analýza krychle je uvedena analýza pro velm hrubou mřížku s těžštěm tělesa v souřadncích (0, 0, 0) za použtí programu Velčny, který počítá pouze matc momentu setrvačnost. Je zde také vdět, že vždy pouze v jedné ose vznkla velká chyba, způsobená špatným upnutím na mřížku v lbovolné z os. Obrázek 6.6 lustruje použté velkost jednotlvých mřížek krok = 50 jednotek, krok = 5 jednotek, krok = 6,5 jednotek. Červený bod přestavuje souřadnce středu mřížky. 4

44 Obr Analýza časová náročnost Druhá provedená analýza krychle je zaměřená především na přesnost a časovou náročnost výpočtu (vz. Příloha III. Analýza krychle). Zde je zřetelné, že přesnost výpočtu se stále mění. To platí hlavně pro matc setrvačnost, protože se stále mění souřadnce těžště, na kterém závsí výpočet. Od velkost kroku (model je rozdělen na 600 dílků podle jedné z os) se jž nemění poměr na hlavní dagonále v matc setrvačnost, což je zásadní vlastnost počítané matce. Těžště je určeno s přesností jedné desetny jednotky, což je pro účely této práce také dostačující. Tato analýza však trvala zhruba 35 mnut. Obdobně byla provedena časová analýza pro model jehlanu a model stíhačky (vz. Příloha IV. Analýza jehlanu, Příloha V. Analýza stíhače). Jak je vdět na výsledcíh provedených analýz, se zmenšující se mřížkou roste přesnost výpočtu, ale také roste násobná chyba. Tato je markantní především u těles, které dobře vyplňují testovaný obalový box. Pro příklad u nejkomplkovanějšího modelu je dostačující přesnost cca 0,5 jednotky, kdy je model rozdělen zhruba na 600 dílků obdobně jako u krychle. 43

45 7. Implementace - Aplkace 7.. Rozdělení aplkací Aby bylo možno vyhodnocovat namplementované algortmy, je nutné vytvořt prostředí nebo-l vrtuální scénu (demo aplkac). Vrtuálních scén bylo pro účely tohoto dplomového projektu vytvořeno několk a to tak, aby dobře demonstrovaly namplementované algortmy a jednoduchý herní engne. Tř ze čtyř vytvořených aplkací mají čstě demonstratvní úkol, slouží jen k předvedení funkčnost kolzních a vyhodnocovacích algortmů. Všechny tř jsou umístěny do krychle, ve které se pohybují a koldují demonstrační objekty. První aplkace, nazvaná Box cube, obsahuje ty nejjednodušší tělesa, kvádry. Druhá aplkace, nazvaná Box object, obsahuje různé modely jednoduchých těles. A konečně poslední aplkace, nazvaná Box fghter, obsahuje pouze jeden složtý model stíhačky. Hlavní aplkace, nazvaná Průlet tunelem, je demonstrací jak kolzních a vyhodnocovacích algortmů, tak všech ostatních funkcí. Vyhodnocení kolzí je řešeno stejným algortmy jako v předchozích příkladech, navíc je přdáno řešení pomocí exploze, které je realzováno vystřelením rakety. Všechny aplkace se skládají se stejných programových modulů. Jelkož jsou v aplkac použty objekty, jsou moduly rozděleny podle společných funkcí jednotlvých objektů. Hlavním moduly jsou: - Man - hlavní modul, lší se v jednotlvých demonstračních aplkacích - SgoManager - modul pro správu objektů, detekce a vyhodnocení kolzí - SgObject - modul jednotlvých objektů - SgInterface - modul obsahující funkce prostředí (ovládání, kamera) - Bllboard - modul obsluhující bllboardng (exploz) Návod k ovládání demonstračních aplkací a náhledy jsou součástí přílohy VI. Ovládání aplkace a screenshoty. 7.. Prostředí Samotné prostředí hlavní aplkace je tvořeno tunelem. Konfgurace tunelu je načítána z externího souboru a může být tedy edtována. Tunel je tvořen jednoduchým statckým krychlem, které obsahují statcká dynamcká tělesa. Edtace tunelu probíhá edtací textového souboru s názvem tunel.txt, který je součástí datových souborů. Jak tento soubor edtovat je podrobněj popsáno v příloze VII. Tvorba tunelu. Prostředí je osvětlováno standardním funkcem Open Inventoru SoPontLght a SoSpotLght, pro které jsou vytvořeny vlastní třídy (vz. příloha VIII. SgInterface). Toto světlo je v prostředí použté jako globální, tedy osvětluje celou scénu a také je přlepeno na stíhačku. 44

46 7.3. Objekty v prostředí V projektu je mplementovaná třída SgObject, která umožňuje vkládat v podstatě lbovolné objekty do vytvořeného prostředí. Objekt je reprezentován velkým počtem atrbutů a použtých metod. Převážná část atrbutů je fyzkálních, vyjadřující statcký nebo aktuální fyzkální stav tělesa. Ve fyzkálních atrbutech jsou uloženy používané velčny, které byly podrobněj charakterzovány v kaptolách. Fyzka a 4. Vyhodnocení kolze. Detalní pops atrbutů a metod je v hlavčce funkce (vz. Příloha IX. SgObject). Některé klíčové metody budou více popsány níž v tomto textu. Samotný model objektu je reprezentován předem vytvořeným trojúhelníkovým modelem (resp. texturou), který se načítá ze souboru s modelem. V mplementac je pro uložení modelu použta třída Open Inventoru SoNode. V tomto projektu jsou použty konkrétní modely geometrckých těles a stíhačky. Je možné použít další lbovolné modely, ale jejch použtí v ukázkovém přkladu není zapotřebí. Seznam použtých modelů, spolu s autorským právy k těmto modelům, je uveden v souboru LICENSE, který je součástí přložených datových souborů. Většna reálných modelů je pro účely detekce kolzí přílš složtá, a proto se ve většně aplkací používají modely pouze dva, jeden model vykreslovací a druhý jednodušší kolzní model. V demonstrační aplkac je zbytečné pracovat s oběma typy modelů. Proto se používají jen kolzní modely a vznklé stuace jsou pak reálné. Používání dvou kolzních modelů je namplementované a je tudíž možné doplnt aplkac o propracované modely. Tvorba složtých modelů, resp. textur, by zabrala přílš velké množství času a nepřnesla by žádné funkční zlepšení. Navíc tvorba modelů a textur není součástí zadání této dplomové práce. Objekty v prostředí spravuje třída SgoManager, která zajšťuje pohyb a vzájemnou nterakc všech objektů scény. V této třídě jsou také mplementovány klíčové algortmy pro detekc a vyhodnocování kolzí. Třídy SgObject a SgoManager tvoří stěžejní třídy projektu, obě budou detalněj popsány v následujícím textu Pohyb v prostředí V každé scéně je potřeba zajstt patřčný pohyb kamery nebo umožnt pohled z objektů ve scéně jž umístěných (např. stíhačky) po daném prostředí. Obecně je v aplkac mplementováno prostředí s nastavtelným odporem prostředí (třecí síla). Tento odpor prostředí se projevuje jako síla působící na těleso. Ve třídě SgObject je atrbut uchovávající působící síly, proto je jednoduché přdat lbovolnou globálně působící sílu jako například vítr č gravtac, která ovlvňuje všechny tělesa Kamera V projektu je použta perspektvní kamera, realzovaná v grafcké knhovně Open Inventor pomocí třídy SoPerspectveCamera, která nastavuje transformační matc OpenGL. Pro tuto kameru je v projektu vytvořena specální třída v modulu SgInterface, která umožňuje lépe pracovat s kamerou, oprot původní třídě, a nastavovat potřebné parametry (např. výška a vzdálenost od pozorovaného tělesa). Detalní pops třídy je přložen v podobě komentářů v příloze VIII. SgInterface. 45

47 V průběhu mplementace a testování bylo zjštěno, že je nutné nejprve nastavt orentac kamery a teprve poté kamerou posunout. Př obráceném pořadí funkcí by se kamera kousala a takový efekt není žádoucí Ovládání Pohyb v prostředí nemůže být jen náhodný, proto by měl být ovládaný užvatelem. Z tohoto důvodu jsou parametry třídy kamery nastavovány podle reakcí užvatele. V operačním systému Wn3 jsou podněty z perferních zařízení předávány aplkac pomocí událostí, jejchž obsluhu provádí třída SoMouseButtonEvent pro obsluhu myš a třída SoKeyboardEvent pro obsluhu klávesnce. Tyto třídy Open Inventoru mají v dplomovém projektu opět vytvořenu vlastní třídu utvořenou na míru pro účely demonstrační aplkace. Tyto třídy jsou mplementovány v modulu SgInterface, a to třída SgMouse pro prác s myší a třída SgKeyboard pro prác s klávesncí (vz. příloha VIII. SgInterface). Pro lepší pohyb ve scéně je použto ovládání myší, z tohoto důvodu je nutné použít platformě závslé rozhraní WnAPI k ovládání kurzoru. Pro prác s kurzorem byly použty funkce GetCursorPos a SetCursorPos. Pro zlepšení ovládání se v každém snímku vrací kurzor do středové pozce okna Pohyb Pro pohyb ve scéně jsou mplementovány metody zajšťující pohyb rotac ve všech osách volnost. Vzhledem k původnímu vesmírnému prostředí (použtém v ročníkovém projektu) a záměru vytvořt jednoduchý herní engne, je ovládání mplementováno ve více varantách. Jednou z varant je ovládání ruční, které bere v úvahu všechny aspekty setrvačnost tělesa. Druhé ovládání využívá funkce auto plota a snaží se stablzovat stávající pohyb. V projektu je mplementováno třetí ovládání, a to absolutní změna polohy. Toto ovládání nepodporuje vyhodnocování kolzí, proto není v demonstrační aplkac povoleno a slouží spíše pro testovací účely. Otáčení a pohyb v prostoru je možné řešt mmo třídu SgObejct a nastavovat orentac přímo pomocí funkce setorentaton. Nebo lze využít funkcí namplementovaných ve třídě, které umožňují absolutní nebo relatvní rotac a pohyb ve všech osách. Pojmem absolutní rotace označujeme v tomto projektu rotac, př které užvatel stskne patřčnou klávesu a objekt rotuje, resp. pohybuje se po dobu stsknutí klávesy konstantní rychlostí, tzn. mění absolutně svoje natočení. Pojmem relatvní rotace, resp. pohyb, označujeme rotac, která je založená na fyzkálním modelu, také by se dala nazvat fyzkální. Tato rotace/translace funguje tak, že př stsku klávesy začne působt tažná síla, resp. zrychlení, která uvede objekt do pohybu. Působící síla může způsobovat lbovolné rotace v závslost na směru a umístění síly. Objekt proto obsahuje *6 párů vrtuálních motorů, které otáčí a posunují objekt ve všech osách. V deálním případě, pro detalní smulac, by objekt měl mít na každém ramen osy 4 páry motorů (celkem 4 motorů). Všechny stupně volnost zachycuje obrázek 7., kde modré vektory reprezentují síly způsobující rotac a barevné síly v těžšt tělesa reprezentují síly působící translac. 46

48 Obr. 7. Všechny provedené změny rotace a translace je nutné uložt do uzlu Open Inventoru SoMatrxTransform, a tím je aplkovat na celý objekt. Tato transformační matce obsahuje polohu (translac), natočení (rotac) a měřítko (scale) daného objektu. Uložení zajšťují výše popsané funkce pro absolutní a relatvní změnu rotace č translace. V popsu hlavčky třídy SgObject (vz. Příloha IX. SgObject) mají funkce pro absolutní rotac název Rot*, pro relatvní rotac mají název Torque* a pro edtac pohybu setpos, případně updpos. Integrace veškerých pohybových velčn (tzn. setrvačnost pohybu) pomocných velčn každého tělesa je prováděna pomocí metody TmeStep třídy SgObject, kde se aktualzuje pozce a rotace tělesa. Dále se vyhodnocují působící síly a přepočítává se matce setrvačnost podle aktuálního natočení tělesa Správa objektů Správa objektů scény je realzována hlavní třídou SgoManager, tzv. správcem objektů. Tato třída obsahuje klíčové algortmy detekce a vyhodnocování kolzí. Vybraným klíčovým algortmům je 47

49 věnována samostatná kaptola a budou rozebrány pozděj. Hlavčka třídy SgoManager je uvedena v příloze X. SgoManager. Třída SgoManager obsahuje základní funkce pro prác s objekty třídy SgObject. Objekty jsou uloženy v seznamu objektů (třída Open Inventoru SbLst). Nad tímto seznamem jsou mplementovány operace přdávání a odebírání jednotlvých objektů. Metody v třídě SgoManager lze rozdělt na následující skupny: - metody pro detekc kolzí - metody pro vyhodnocení kolzí - metody pro pomocné vypočty - metoda tmestep, zajštující chod aplkace, ntegrac velčn a volání ostatních metod V této prác metody použté pro detekc kolze jsou checkcollson, checkcollsonwth, checktranglecollson a ntersectoncallback, které zajšťují rozdělení prostoru a detekování kolze, jak jž bylo teoretcky popsáno v kaptole 3. Detekce kolzí. Metodam vyhodnocujícím kolze jsou resolvecollson, resolvecollsonball, resolvecollsonbody a ExplosonMssle, které zalštují vyhodnocení kolze na základě jednoduchého odrazu, fyzkálního odrazu č exploze (vz. kaptola 4. Vyhodnocení kolze). Pomocné metody zajšťují výpočty velčn nebo pomocné operace nad těmto velčnam. Jsou jm checkid, computetr, partoftrangle, dffexp, workintersectonponts, workintersectonvertexs, getintersectonpont a computenormal. Metodám pro detekování a vyhodnocování kolze, včetně pomocných metod, jsou věnovány samostatné kaptoly (vz. kaptola 8. Implementace - Detekce kolze a 9. Implementace - Vyhodnocení kolze), proto s v této kaptole uvedeme pouze tu metodu, která obstarává samotnou správu objektů, tzv. metodu tmestep. Dále s také představíme problém spojený se změnou pozce a vyhodnocením kolze (vz. kaptola Vyhodnocení pozce vs. detekce kolze). Metoda tmestep obsluhuje všechny ostatní funkce v každém snímku. Pokud se ve scéně nachází běžící anmace (exploze), tak j obslouží, tzn. zavolá funkc tmestep pro běžící anmac. Dále volá funkce pro samotné detekce kolze, tedy checkcollson Vyhodnocení pozce vs. detekce kolze Původně algortmus řešl nejprve ntegrac pozce (vyhodnocení) všech objektů současně, a teprve poté zjšťovala, zda nedošlo k detekc kolze. Toto řešení je výhodné v tom, že postačí provést počet řešení rovný kombnac bez opakování všech dvojc objektů. Nevýhodou je, že pokud dojde k posunutí více těles, u kterých byla zároveň detekována kolze, je relatvně velká šance na vznk tzv. zakousnutých objektů. K tomuto zakousnutí může dojít, protože nastane více kolzí současně, což znamená, že pokud nastanou u jednoho shluku objektů, dojde ke špatnému vyhodnocení kolze a možnému zaklínění těchto těles. Stuac lustruje obrázek 7., kde koldují dva objekty a stěna. Pokud dojde například nejprve k vyhodnocení kolze, pak kolze se jž počítá se špatným hodnotam, které jsou způsobeny kolzí. 48

50 Obr. 7. Problém lze částečně elmnovat vyhodnocením pozce vždy jednoho objektu a okamžtým hledáním kolze s dalším objekty. V tomto případě je ale potřeba provést test na kolz u všech testovaných objektů mez sebou, tzn. testovat každý s každým. 49

51 8. Implementace Detekce kolze Použté algortmy vychází z teoretckých základů uvedených v kaptole 3. Detekce kolzí. Hlavní funkcí, která je volaná z metody tmestep, je funkce checkcollson. Ta vždy aktualzuje pozc objektu (zavolá metodu tmestep, a to pro každý objekt) a provede test, zda právě posunutý objekt nekolduje voláním metody chechkcollsonwth. Pokud dojde ke kolz, volá funkc pro vyhodnocení kolze resolvecollson. 8.. Rozdělení prostoru Rozdělení prostoru zajšťuje metoda checkcollsonwth. Aby nebyla detekce kolze tak náročná na využtí zdrojů, je prostor rozdělen na jednotlvé podprostory. V našem konkrétním případě tyto podprostory tvoří stěny jednotlvých krychlí tunelu. Každá krychle tvoří jednu oblast. Dále každý objekt má svůj obal (vz. kaptola 3.3. Obalová tělesa) pro zamezení neustálé detekce na úrovn modelů (trojúhelníků). Použtým obalovým tělesy jsou koule a osově orentovaný box. Jako metoda dělení prostoru je zvolena metoda herarche obalových těles jedné úrovně. Použtá metoda je jednoduchá, ale v této konkrétní prác velm účelná. Jako možnou optmalzac lze seznam krychlí převést na jednoduchý prostorový strom a dělt tak prostor metodou stromu (vz. kaptola BSP Strom). 8.. Kolze obalových těles Kolze na úrovn obalových těles opět řeší funkce checkcollsonwth, která je v algortmu použta dvakrát. Poprvé pro detekování v jakém prostoru se nacházím, a to mez tělesy a referenčním krychlem tvořícím tunel, a podruhé př samotné detekc kolze mez objekty. S těmto optmalzacem probíhá samotná detekce kolze jen u objektů ve stejném prostoru, a to na úrovn obalových těles. Př nalezení kolze obalů je na základě druhu koldujících těles rozhodnuto o typu kolze a o případném pokračování detekce kolze na úrovn trojúhelníků. Kolze mez obalovým tělesy mohou být trojího druhu: - kolze koule vs. koule - kolze box vs. box - kolze koule vs. box V případě kolze koule vs. koule je určení průnku (kolze) jednoduchou matematckou operací. Stačí vypočítat vzájemnou vzdálenost obou těles, a pokud je menší než součet poloměrů těchto těles, došlo ke kolz. Toto je naznačeno na obrázku 8., kde r a r jsou poloměry obalových koulí a R je vzdálenost těchto koulí. Na tomto obrázku ke kolz koulí došlo. Kolz box vs. box lze provést postupným porovnáváním jednotlvých souřadnc BB. Celkem stačí provést 6 srovnání souřadnc: Teleso.Xmn < Teleso.Xmax, Teleso.Xmax > Teleso.Xmn Teleso.Ymn < Teleso.Ymax, Teleso.Ymax > Teleso.Ymn Teleso.Zmn < Teleso.Zmax, Teleso.Zmax > Teleso.Zmn 50

52 Jakmle alespoň jedno porovnání je pravdvé, došlo ke kolz boxů. A nakonec, v posledním případě (box vs. koule), se dá vyřešt testování obalením samotných obalových těles. Tedy původní obalové těleso obalím do dalšího, a provedu jak detekc mez koulem tak detekc mez boxy. Pokud nastala kolze v obou případech, původní obalová tělesa koldují. Stuac znázorňuje obrázek 8., kde černé původní obalové těleso je obalené novým modrým. Na tomto obrázku ke kolz původních obalových těles nedošlo, protože obalové boxy vzájemně nekoldují. Obr 8. Podrobnější vyhodnocení kolze na úrovn trojúhelníků nastává jen v případě řešení kolze na základě fyzkálního modelu Kolze na úrovn modelů V případě podrobnější detekce na úrovn trojúhelníků se volá metoda checktranglecollson, která vytvoří skrytou scénu, do níž se umístí koldující modely. Na tuto skrytou scénu je poté aplkována funkce Open Inventoru SoIntersectonDetectonActon, která př kolz na úrovn trojúhelníků modelů vyvolá callback funkc ntersectoncb, a tato následně kolz obslouží potřebným níže popsaným způsobem. Po skončení detekce je skrytá scéna vyprázdněna a schována pro další použtí. Ve funkc ntersectoncb se řeší uložení kolzních trojúhelníků a výpočet průsečíků těchto trojúhelníků. Tato funkce je postupně vyvolávána pro každou koldující dvojc trojúhelníků. Právě pro tyto dvojce trojúhelníků hledáme jejch vzájemné průsečíky, které uložíme do seznamu kolzních bodů pro další zpracování. Průsečíky hledáme metodou podrobněj popsanou v kaptole 3. Kolze trojúhelník vs. trojúhelník. 5

53 Obr. 8., Obr. 8.3 Na obrázku 8. je zachycen nejjednodušší možný případ kolze, kdy několk trojúhelníků prvního tělesa pronkne do jednoho trojúhelníku druhého tělesa. Funkce ntersectoncb vyhodnotí jako kolzní dvojce trojúhelníky (ABD, IJK), (ACD, IJK), (CBD, IJK). Z těchto dvojc poté vypočítáme průsečíky podle vzorce (3.5), resp. (3.6). U průsečíků musíme ověřt, zda opravdu leží v druhém trojúhelníku, a to aplkací vzorce (3.9). Pro konkrétní dvojc trojúhelníků ABD a IJK jsou pak vyhovující průsečíky P a P (vz. obr. 8.3). 5

54 9. Implementace Vyhodnocení kolze Poté, co je detekován a určen typ kolze koldujících těles, může dojít k jejímu vyhodnocení. Vyhodnocení kolze je v této dplomové prác provedeno třem, resp. pět, metodam. Jsou jm vyhodnocení jednoduchého odrazu (koule vs. pevné těleso, koule vs. koule), vyhodnocení fyzkálního odrazu (těleso vs. pevné těleso, těleso vs. těleso) a vyhodnocení explozí. Vyhodnocení srážek provádí metoda resolvecollson, která ošetří kolz s kamerou a zavolá metody pro vyhodnocení jednotlvých druhů kolzí. Kamera je specálním objektem, pro který se kolze v případě volné kamery vyhodnocují a v případě vázané kamery naopak nevyhodnocují. 9.. Exploze Kolze, která se má vyhodnott explozí, je vyhodnocována funkcí ExplosonMssle a to tak, že nechá raketu explodovat. Prvním úkonem ošetřeným těsně před samotnou explozí je odebrání explodujícího tělesa ze seznamu objektů scény, případně přesměrování kamery na jný objektv stuacích, kdy byla kamera upnuta právě na explodovaný objekt. Následně se do scény umístí anmovaný bllboard s explozí na původní místo explodujícího objektu (hlavčka třídy Bllboard vz. Příloha XI. Bllboard). Správce scény (sgomanager) má k dspozc svůj seznam jž exstujících bllboardů (exstuje nstance třídy bllboard), které mohou být právě používány a běží na nch anmace, nebo jsou volné. V případě, že má správce volný bllboard k dspozc, pouze ho ncalzuje novým hodnotam a nechá spustt novou anmac. Pokud není žádný bllboard volný, vytvoří správce novou nstanc, kterou ncalzuje a umístí na konec seznamu bllboardů. Na tomto bllboardu opět spustí anmac. Za povšmnutí stojí také metody usebllboard a tmestep třídy Bllboard. Začneme jednoduší metodou, tedy usebllboard, která označí bllboard jako použtý a nastaví první zobrazovaný frame anmace. Případně ta samá metoda volaná s parametrem nové pozce nastavuje rovnou pozc bllboardu, a tudíž se jž nemusí nastavovat explctním voláním příslušné funkce. Hlavní metodou, ve které se provádí samotná anmace, je metoda tmestep, která je vyvolána v každém snímku. Tato metoda v první řadě upravuje natočení bllboardu ke kameře, a to pomocí ukazatele na použtou kameru. Orentace bllboardu je provedena tak, že orentace z transformační matce kamery je přřazena do transformační matce bllboardu s následným otočením o 80, proto aby byl bllboard otočený ke kameře, nkol od kamery. Anmace je optmalzována, proto není načítán každý snímek anmace zvlášť, ale všechny snímky anmace jsou umístěny v jedné textuře (vz. obr. 9.). 53

55 Obr. 9. Takto se na textuře mění pouze texturovací souřadnce. Anmace je prováděna s určtou rychlostí, kterou určuje atrbut FPS. V okamžku, kdy nastane čas k výměně snímku anmace, dojde k přemapování texturovacích souřadnc pomocí funkce updatetexturecoordnate. Po provedení anmace (zobrazení všech snímků) se bllboard sám uvolní ze scény, tzn. jž se dále nezobrazuje. 9.. Jednoduchý odraz Jednoduchý odraz je ze zvolených algortmů pro vyhodnocování kolzí as nejjednodušší. Pro dvě koldující tělesa se vypočítá odraz jako v případě dvou koulí, a to bez ohledu na rotac. Tento výpočet je detalně rozebrán v kaptole 4.. Jednoduchý odraz. Po vypočtení nových rychlostí a směrů těles se objekty umístí na poslední známé nekoldující souřadnce, a tím je kolze vyřešena Fyzkální odraz Fyzkální obraz byl as nejsložtější částí projektu. Samotná teore fyzkálního odrazu je podrobně rozepsána v kaptolách. Fyzka a 4.. Fyzkální odraz. Vyhodnocení odrazu na základě fyzkálního modelu je realzováno ve funkc resolvecollsonbody, která je mplementovaná podle uvedených vzorců (vz. kaptola 4.. Fyzkální odraz). Samotná mplementace fyzkálního odrazu není tolk složtá, problematcké však bylo zajšťování potřebných fyzkálních velčn. U velčn jako je rychlost, pozce nebo samotné souřadnce koldujících těles není problém, protože tyto velčny (atrbuty) jsou obsaženy buď v příslušných 54

56 strukturách, nebo v objektu samotném. Problémovým velčnam jsou těžště tělesa a matce momentu setrvačnost (vz. kaptoly.. Těžště tělesa a.3. Moment setrvačnost a matce setrvačnost). Pro tyto parametry byla namplementována specální aplkace, počítající pouze tyto velčny (vz. kaptola 6. Pomocná aplkace Velčny). Charakterzace dalších problémových velčn a stuací následuje Bod kolze Na první pohled se může zdát otázka výpočtu bodu kolze jako jednoduchá, skutečností však je, že patří k těm složtějším výpočtům v rámc tohoto projektu. Vzhledem k tomu, že se pohybujeme v rovně dskrétních funkcí a ne spojtých, jak by bylo pro fyzkální model potřeba, vznká takto mnoho doprovodných problémů. Prvním z nch je samotná detekce kolze, př které dochází k průnku těles, právě v důsledku dskrétního posunu těchto objektů. Platí, že př průnku těles nám zankne kolzní bod a normála, které se následně musejí vypočítat z objemu vznklého tímto průnkem. Jž byla zmíněna funkce Open Inventoru SoIntersectonDetectonActon, resp. ntersectoncb, která detekuje kolz dvou těles a vrací všechny koldující trojúhelníky. Zároveň vypočítává všechny průsečíky těchto trojúhelníků. Tyto průsečíky poté musíme elmnovat pouze na průsečíky tvořící přesně kolzní objem, resp. kolzní těleso. K tomu slouží další funkce workintersectonponts. Funkce workintersectonponts elmnuje chybné kolzní body na základě předpokladu, že bod, který je ve výčtu uveden vícekrát, je právě tím hledaným kolzním bodem. Například z obrázku 9. průsečík P nalezneme jak pro dvojc trojúhelníků (ABD, IJK), tak pro (ACD, IJK), obdobně pro bod P to jsou dvojce trojúhelníků (ABD, IJK) a (CBD, IJK). Obr. 9. Z takto vypočítaného kolzního tělesa, pomocí funkce getintersectonpont, vypočítáme kolzní bod. Ten je vypočítán tak, že jmenovaná funkce nalezne těžště kolzního tělesa. Algortmus pro výpočet těžště je uveden v kaptole... Algortmy pro výpočet těžště. Problém nastává, pokud těleso (tělesa) koldují na více místech současně (vz. obr. 9.3). V místě S a S jsou vypočítány správné průsečíky, jenže objemové těleso je tvořené oběma shluky najednou a tedy výsledný bod srážky P (těžště) je počítán ze špatného objemového tělesa. Tato chyba vede k tomu, že bod kolze se vypočítá nesprávně, a to někde mez místy S a S (modrá plocha), 55

57 v závslost na počtu průsečíků v jednotlvých místech S a S. Tuto chybu pravděpodobně nelze odstrant bez použtí složté heurstky. Obr Normála kolze Výpočet normály kolze je zatížen podobným problémy jako výpočet bodu kolze. Před samotným výpočtem normály, která se rovněž počítá na základě koldujících trojúhelníků, je zapotřebí trojúhelníky uložené funkcí ntersectoncb upravt pomocí funkce workintersectonvertexs. Protože funkce ntersectoncb hledá dvojce koldujících trojúhelníků, mohou se v seznamu trojúhelníků každého objektu objevt stejné trojúhelníky vícekrát. Tyto výsledky jsou elmnovány právě funkcí workintersectonvertexs. Po elmnac stejných trojúhelníků můžeme přstoupt k výpočtu samotné normály. Funkce computenormal vypočítá normálu. Normála je ve výpočtu fyzkálního odrazu důležtá a rozhoduje, které těleso se doráží od kterého a jakým směrem. Jak jž bylo zmíněno u výpočtu kolzního bodu, problém nastává př dskrétním pohybu objektů a př vyhodnocení srážky jako průnku dvou těles, proto nemůžeme jednoznačně určt, které těleso narazlo do kterého. Rozlšujeme dva druhy těchto srážek, jednoduchou a složtou (vz obrázek 9.4). 56

58 Obr. 9.4 Př jednoduché srážce pronká několk trojúhelníků jednoho tělesa do jednoho trojúhelníku druhého. Tuto srážku lze vyhodnott tak, že normálu vypočteme z osamoceného trojúhelníku. Výsledná normála je tedy samotná normála tohoto trojúhelníku, resp. rovny, kterou trojúhelník tvoří (např. 3.). Př složté srážce pronká několk trojúhelníků jednoho tělesa do několka trojúhelníků druhého tělesa. Zde není jednoznačné, které těleso narazlo do kterého, proto se pro výpočet normály zvolí těleso s menším počtem koldujících trojúhelníků. Pro zvolené těleso se vypočítají normály pro všechny tyto trojúhelníky, které se ve výsledku zprůměrňují. Normály zprůměrňujeme tak, že vektory sečteme a výsledný vektor normalzujeme. V případě srážky se statckým tělesem se automatcky počítá normála ze statckého tělesa. Problém může nastat př průnku rotačních těles (např. válec), nebo jných plochou ukončených těles. Na obrázku 9.5 pronká 5-stěn do plochy. Př výpočtu normály dojde k stuac, kdy zprůměrňování vektorů (modré špky) všech trojúhelníků se blíží nule. V takovém případě nedostaneme rozumný výsledek výpočtu normály a celý výpočet odrazu poté proběhne chybně. Tato chyba se pravděpodobně bez použtí složté heurstky nedá odstrant a způsobuje tak chybné odražení. Chyba ve výpočtu normály má ve výsledném výpočtu největší váhu. Od normály se totž odvíjí většna dalších výpočtů. 57

59 Obr

60 0. Implementace - Přesnost algortmů Jelkož je výpočet tvořen často na sobě závslým dílčím výpočty, je výsledek zatížen velkou chybou. Výsledná chyba se dělí na chybu jednotlvých úloh, zaokrouhlovací chybu ve všech výpočtech a násobnou chybu mez jednotlvým výpočty a závslým úloham. Zásadní vlv na chybu ve výpočtu mají tyto velčny: - normála kolze, byla popsána - výpočet bodu kolze (kolzních bodů), též byla popsána - přesnost těžště - přesnost matce setrvačnost Dalším faktorem ovlvňující tuto chybu je rychlost konkrétního počítače a grafcké karty. Čím pomalejší je stroj, tím je menší počet snímků za sekundu, a tím je větší kolzní objem těles. Větší kolzní objem těles způsobuje větší chyby př výpočtech normály a kolzních bodů, a další problémy s nm spojené. 0.. Přesnost těžště a matce setrvačnost Př výpočtu se určuje rameno srážky, které se vypočítává z bodu srážky, a těžště tělesa. Pokud je v jednom z bodů chyba, jsou chybně vypočítána ramena, která se dále používají ve výpočtu. S většnou vektorů je prováděn vektorový součet a chyba vznklá chybným těžštěm, nebo bodem srážky, může mít poté zásadní vlv jak na velkost, tak na směr vektoru. Obdobně chyba v matc setrvačnost má také zásadní vlv na výpočet, a to protože přes matc setrvačnost se pronásobuje většna vektorů. S použtím matce setrvačnost vznkl př řešení dplomového projektu další nečekaný problém. Algortmus totž neumí pracovat s lbovolnou matcí setrvačnost, která využívá devační momenty. A většna vypočítaných matcí setrvačnost je špatně podmíněná a v algortmu nepracuje korektně. Matce obsahuje velké číselné rozdíly, velká čísla na hlavní dagonále a naopak čísla blízká nule ve zbytku matce. Zjštění, že algortmus nepracuje korektně s plnou matcí setrvačnost, ale jen s matcí dagonální (složenou jen z momentů setrvačnost) zabralo dlouhou dobu věnovanou ladění a testování aplkace. Tento problém se ukázal řeštelný, protože model se snažíme vycentrovat do těžště a matce setrvačnost pro těleso, které má střed souřadné soustavy v těžšt má devační momenty rovny nule. Proto byla po provedené analýze a zjštění těchto skutečností upravena funkce programu velčny tak, aby devační momenty zaokrouhlla na nulu. Tím se matce setrvačnost pro tělesa, která mají pevně dané těžště, spíše upřesnla. 0.. Zaokrouhlovací a násobná chyba Zaokrouhlovací chyba vznká př každém výpočtu a výpočtů je v aplkac relatvně hodně. Chyba vznklá zaokrouhlováním je však relatvně malá, č dokonce zanedbatelná, vůč ostatním chybám. Tato chyba je ale nepatrně větší než by mohla být, protože př většně výpočtů musel být použt datový typ float, který je mplementován ve všech objektech knhovny Open Inventor místo datového typu double. 59

61 Násobná chyba vznká př použtí jednoho chybného výsledku v další operac, takto se chyba neustále zvětšuje. Jelkož většna dílčích úloh je na sobě závslých, není tato chyba zanedbatelná a je nutné počítat s tím, že ovlvní výsledek odrazu. Násobná chyba se nedá odstrant, dá se však elmnovat použtím jných metod výpočtů, případně upravením algortmu. Největší násobná chyba byla v průběhu testování ladění a testování aplkace odstraněna. Jednalo se o chybu vznklou př přepočítávání momentu matce setrvačnost v každém snímku běžící aplkace. Chyba rostla velm rychle, protože matce se počítala z matce předešlého snímku. Elmnace byla provedena úpravou algortmu tak, že se pro výpočet používala základní matce momentu setrvačnost, nkolv matce z předchozího snímku Ovlvnění výsledku Jelkož je výpočet ve výsledku zatížen velkým počtem chyb, dochází k chybnému vyhodnocení odrazu. Chybně je vyhodnocena jak velkost působící síly, tak její směr (vektor). Velkost působící síly by neměla způsobovat žádné vdtelné problémy v aplkac. Zato však směr odrazu jž způsobuje další problémy. Většnou př mezních stuacích ve výpočtu, kdy některé z vektorů svírají mez sebou úhly blížící se 80, 90, 0, může být směr vyhodnocen úplně špatně nebo s velkou chybou, a následně může dojít k zakousnutí těles. K zakousnutí může dojít př relatvně malé chybě, kdy mají být výsledné vektory pod malým úhlem. Jako zakousnutí těles je označeno vzájemné a trvalé pronkání a vyhodnocování kolze. Těleso se může z tohoto stavu dostat časem samo, nebo v něm dlouhou dobu setrvávat. Některé z těchto chyb by šly pravděpodobně vyřešt komplkovanou heurstkou. Například když dojde k nežádoucímu stavu zakousnutí, lze od sebe objekty ručně odtrhnout nebo dát náhodný mpuls síly oběma koldujícím tělesům Chyba aproxmace a statckého tělesa Každý lbovolně složtý objekt je reprezentován matcí momentu setrvačnost. Tato matce udává rozložení hmoty kolem jednotlvých os. Pro pravdelné objekty jako je kvádr č krychle je rozložení hmoty správné a použtý algortmus pracuje relatvně dobře s ohledem na další chyby. Ncméně pro nepravdelná tělesa, jako je například stíhačka, je rozložení hmoty sce ve správném poměru, nkol v objemu (vz. obr. 0.). Červený čtverec představuje předpokládaný objem stíhačky rozložený v jednotlvých osách, který je reprezentován matcí momentu setrvačnost. Obr

62 Pokud nastane stuace, že dojde ke srážce se statckým tělesem v místě mmo červenou oblast (srážka S), dojde k chybnému výpočtu a tedy k navýšení odrazové energe. Pokud dojde naopak ke srážce v místě S, energe odrazu bude chybně snížena. Z tohoto vyplývá, že pokud dojde k sér odrazů mmo červenou oblast, dojde ke kaskádnímu navyšování energe, které někdy (například v demonstrační aplkac Box-Fghter) zapříční extrémní nárůst rychlost a následné proskočení stěnou boxu. Př srážkách těles mez sebou nemá tato chyba takový vlv. V řízené aplkac (demo aplkace průlet tunelem) nebo př použtí tlumení se chyba také plně neprojeví. Chyba popsaná jako chyba aproxmace není v rámc této práce matematcky podložena. Použtá lteratura se problémem zabývá jen v teoretcké rovně [4] a nalezená praktcká řešení využívají zase jen jednoduchých objektů jako krychle a kvádr [5, 6, 7, 8]. Proto byla provedena řada testů, které nepřímo ukazují na chybu způsobenou aproxmací. Testy byly provedeny pro jednotlvé modely krychle, kvádru a stíhače v uzavřené statcké krychl, obdobně jako demo příklad Box-Fghter. Pro krychl a kvádr aplkace běžela cca hodnu a za tuto dobu došlo k překročení maxmální energe soustavy u méně než % zaznamenaných kolzí. Tato chyba je způsobená vlvem ostatních chyb. Pro model stíhače však dochází k překročení energe velm často a statstku není možné provést, protože energe př špatných odrazech roste násobně. Počet odrazů, resp. doba správného běhu aplkace, závsí na počátečním nastavení parametrů. Demo aplkace Box-Stíhač je proto nastavena tak, aby k chybám docházelo co možná nejméně. Jným možným způsobem by bylo nepoužívat model jako komplexní objekt, ale rozdělt ho na pevně defnované a vázané objekty, u kterých je moment setrvačnost znám, a následně řešt problém jako soustavu takto defnovaných objektů. Tento problém představuje v podstatě přesnou fyzkální smulac a je přesahuje rámec této práce. Obecně př srážce se statckým tělesem dochází ke změnám celkové energe, protože statcké těleso gnoruje působící síly. Tím dochází př srážce se statckým tělesem k porušení zákona o zachování energe, což také může způsobovat nečekané chyby př odrazu Chyby knhovny Open Inventoru Ve fáz testování a konečného ladění projektu se objevla výjmka v aplkac, která je způsobená chybou ve funkc IntersectonDetectonActon v knhovně Open Inventor. Po zajštění nových knhoven se jž výjmka neobjevovala. Další závažnou chybou Open Invetoru je problém ztráty focusu př vyvolání lbovolného dalogu. Tato chyba byla také vyřešena. V orgnálním archvu a na stránkách knhovny Open Inventor jsou k dspozc knhovny, obsahující tyto chyby. Díky panu ng. Pečvov jsou k dspozc v rámc této dplomové práce překomplované funkční knhovny. K projektu jsou přloženy tyto funkční knhovny, které je nutné použít pro správnou funkc demo aplkací. 6

63 . Etapy vývoje Každé větší vývojové etapě projektu předcházelo studum lteratury souvsející s daným problémem. Proto s nyní představíme pouze fáze praktcké mplementace. Nastudování potřebných materálů probíhalo souběžně s řešením mplementovaných problémů... Rozsah ročníkového projektu Dplomová práce vychází z ročníkového projektu s názvem Knhovna pro detekc kolzí mez objekty scény. První práce spočívala v seznámení s knhovnou Open Inventor a mplementování trvální vrtuální scény (grafckého okna aplkace). Tato scéna obsahovala jednoduchou sluneční soustavu reprezentovanou koulem. První detekce kolzí byla provedena pouze pro obalové koule, které byly navíc pevně defnovány, za použtí funkce Open Inventoru SoIntersectonDetectonActon. Následné vyhodnocení probíhalo jen na úrovn vyhodnocení srážky dvou koulí. Prvním krokem k rozumné aplkac bylo rozdělení do té doby provedené práce na moduly a následné převedení na objekty. Byly vytvořeny základní třídy SgObject a SgoManager. Pro tyto objekty byly mplementovány metody detekce kolze a vyhodnocení kolze, které byly postupně rozšřovány. Dále přbylo vyhodnocení kolze pomocí exploze, a s tím souvsející třída bllboardng. V druhém semestru byly v prác na ročníkovém projektu mplementovány základní algortmy pro srážku na základě fyzkálního modelu, které ovšem používaly většnou konstantních velčny. S tímto musely být přdány algortmy na výpočet bodu srážky a normály srážky. Nakonec byly mplementovány funkce pro pohyb ve scéně a třída SgInterface. V ročníkovém projektu fungovala jednoduchá detekce kolzí s pevně daným obalovým tělesem koule a jednoduché vyhodnocení kolze srážky koulí. Fyzkální vyhodnocení s použtím konstantních velčn fungovalo v rámc demonstrační aplkace relatvně dobře... Rozsah dplomové práce Pro dplomovou prác bylo třeba nahradt konstantní hodnoty hodnotam vypočítaným, proto byla mplementována pomocná aplkace počítající těžště, moment setrvačnost a obalová tělesa. Aplkace se sestávala z načtení WRLM modelu a z jeho převodu pro knhovnu ColDet. Také došlo k aplkac algortmů počítající těžště a moment setrvačnost a k řešením problému průchodů paprsků. Dále bylo vylepšeno ovládání rozšíření objektů o metody pro ovládání stíhače. Byly naprogramovány metody ovlvňující prostředí (tření, gravtace). Samotná detekce kolze byla rozšířena o rozdělení prostoru pomocí obalových těles. Dále byla využta vypočítaná obalová tělesa, jak koule, tak box. S nově získaným velčnam byla upravena stávající aplkace ročníkového projektu. Vyskytla se však řada chyb a nepřesností. Bylo nutné upravt funkc pro výpočet kolzního bodu, která kolzní bod počítala nepřesně. Také byla provedena řada testů a dlouhodobé ladění programu. Rovněž bylo 6

64 nutné opětovné a hlubší studum problému fyzkálního vyhodnocení kolze. Algortmus pro fyzkální detekc celá aplkace byly v průběhu ladění několkrát upraveny. Například zjštění, že algortmus pracuje jen s dagonální matcí momentu setrvačnost, s vyžádalo jak jednoduchou úpravu v pomocné aplkac, tak úpravu hlavní aplkace. Také odstranění násobné chyby př aktualzac matce setrvačnost. Navíc byla objevena chyba v algortmu počítajícím normálu kolze, který musel být přepracován. Byl namplementován textový edtor umožňující načtení tunelu s objekty a upravena práce s kamerou. Závěr práce byl věnován úpravě samotných modelů, prostředí, aplkacím samotným a zpracování dokumentace. Část dokumentace byla vytvořena na základě dokumentace ročníkového projektu a byla doplněna novou lterární rešerší a mplementačním záležtostm, spolu s poukázáním na zjštěné chyby a problémy s tímto spojené. 63

65 Závěr Zadáním této dplomové práce bylo vyřešt detekc a vyhodnocování kolzí na základě fyzkálního modelu ve 3D prostoru a demonstrovat je na vhodných příkladech. K zadanému tématu byla nastudována dostupná lteratura, a na jejím základě vypracována lterární rešerše. Na základě získaných znalostí a vědomostí byly navrženy algortmy pro detekc kolzí mez objekty scény a algortmy na vyhodnocování těchto kolzí s ohledem na možné optmalzace. V dplomovém projektu byl mplementován pomocný program pro výpočet těžště a matce momentu setrvačnost. Byly mplementovány algortmy řešící detekc kolzí. Dále algortmy pro odraz koule vs. koule a pevné těleso vs. pevné těleso, které řeší odraz na základě fyzkálního modelu. Všechny algortmy byly vytvořeny v prostředí Wn3 v programovacím studu Vsual Studo za použtí programovacího jazyka C++ s využtím grafcké knhovny OpenGL a nadstavby Open Inventor, a jsou podrobně popsány v této dokumentac. Pro demonstrac algortmů byl mplementován jednoduchý herní engne, ve kterém byly vytvořeny demonstrační aplkace, zvláště pak aplkace Průlet tunelem. Nejsložtější algortmy řešící fyzkální odraz dvou pevných těles jsou zatíženy velkým množstvím chyb, jak vyplývá z dokumentace. Z tohoto důvodu se mohou v aplkacích vyskytovat různé nechtěné stavy. Pro reálné použtí, například v počítačových hrách, je nutné k těmto algortmům v současné podobě přdat různé komplkované heurstky. Konkrétně pro fyzkální problémy spojené s matcí setrvačnost, především devační momenty matce setrvačnost vs. použtý algortmus a chyba aproxmace, bych však doporučl konzultac s odborníkem v oboru fyzky a matematky, ke které v rámc této práce z časových důvodů nedošlo. V neposlední řadě tato práce přnesla poztva mé osobě. Během vypracovávání jsem získal řadu nových poznatků a vědomostí z oboru 3D počítačové grafky a praktcké mplementace fyzkálních algortmů srážky. Zlepšl s a zdokonall vědomost a schopnost jž známé. Seznáml se detalně s grafckou knhovnou Open Inventor a různým programovacím technkam. Rozšířl jsem s své znalost objektově orentovaného programování a mplementace v C++. 64

66 Lteratura [] Hallday, D., Resnck, R., & Walker, J. (003). Fyzka (Vol. ). VUTIUM, Brno, ISBN , PROMETHEUS, Praha, ISBN [] Ježek, F., Míková, M., & Tomczková, S. (005). Geometre pro FST (skrpta). Plzeň. [3] Theoretcal Foundaton: Mechancal Bass of Moton Analyss (nternet) < [4] Wtkn, A., & Baraff, D. (997). Physcally Based Modelng: Prncples and Practce (nternet) < [5] Hecker, Ch. (997). Physcs, Part : The Next Fronter (nternet) < [6] Hecker, Ch. (996). Physcs, Part : Angular Effects (nternet) < [7] Hecker, Ch. (997). Physcs, Part 3: Collson Response (nternet) < [8] Hecker, Ch. (997). Physcs, Part 4: The Thrd Dmenson (nternet) < [9] Ehmann, S. ( ). Rgd Body Smulaton Tutorál (nternet) < [0] Blow, J., & Bnstock, A. J. (004). How to fnd the nerta tensor (or other mass propertes) of a 3D sold body represented by a trangle mesh (nternet) < [] Sochor, J., & Tobola, P. (005). Detekce kolze (nternet) < [] Pelkán, J., & Tobola, P. (003). Datové struktury pro prostorové vyhledávání (nternet) < [3] Mller, K. Collson Detecton (nternet) < [4] Advanced Collson Detecton Technques (nternet) < [5] Pravda, J. (00). Jak vyzrát na kolze (nternet) < [6] Fauerby, K. (000). Collson detecton & Response (nternet) < 65

67 [7] Collson Detecton Vertex-n-Trangle Check (nternet) < [8] Kolář, D. (00). Postrelační databáze (nternet, prvátní stránky FIT VUT) < [9] Möller, T. A Fast Trangle-Trangle Intersecton Test (nternet) < [0] Tropp, O., Tal, A., & Shmshon, I. (006). A fast trangle to trangle ntersecton test for collson detecton (nternet) < [] Turek, M. (004). CZ NeHe OpenGL, vše o programování grafky (nternet) < [] Dostál, R. (00). Objektově orentované programování v C++ (nternet) < [3] Prata, S. (00). Mstrovství v C++. Computer Press, Praha, ISBN [4] Klgard, J., K. (996). The OpenGL Utlty Toolkt (GLUT) Programmng Interface API Verson 3 (nternet) < [5] Van Heesh, D. (000). ColDet Documentaton (nternet) < [6] Pečva, J. (004). Serál Open Inventor (nternet) < [7] Systeme n Moton AS. (005). Con Documentaton (nternet) < [8] Carey, R., & Gavn, B. (997). The Anotated WRML97 Reference Manual (nternet) < 66

68 Přílohy Příloha I. Ovládání pomocné aplkace a screenshot Aplkace velčny se dá spustt bez parametrů nebo s parametry. Pokud se pustí bez parametrů postupně se na vše potřebné zeptá. Spouštění s parametrem je následující: První parametr - název souboru Druhý parametr - krok aplkace Třetí parametr - přesnost Název souboru určuje jaký soubor se bude zpracovávat, povolený formát je pouze VRML V.0 utf8. Krok aplkace určuje velkost dělící mřížky, nebo se znaménkem - určuje parametr na kolk dílků se rozdělí nejdelší strana obalového boxu modelu. Rozumné hodnoty závsí na počtu jednotek modelu. Pro použté modely jsou rozumné parametry krok=0,5 jednotky nebo rozdělení modelu na cca dílku. Třetím parametrem je přesnost určuje v kolka osách se provede výpočet (-3). S každým stupněm přesnost se opakuje výpočet v jedné z os, proto roste časová náročnost. Obrázek je barevně nvertován 67

69 Příloha II. Analýza krychle Analýza pro krychl o straně 50 jednotek. Soubor Cube.wrl (8 ponts, trangles). krok: 50 Moment setrvacnost: chyb: 0, Chyba v %: 0 Vysledny moment setrvacnost: Cas potrebny pro vypocet IT: 0s krok: 5 Moment setrvacnost: chyb: 0, Chyba v %: 0 Vysledny moment setrvacnost: Cas potrebny pro vypocet IT: 0s Moment setrvacnost: chyb: 0, Chyba v %: 0 Moment setrvacnost: chyb: 0, Chyba v %: 0 Moment setrvacnost: chyb: 0, Chyba v %: 0 Moment setrvacnost: chyb: 0, Chyba v %: 0 krok: 6.5 Moment setrvacnost: chyb: Chyba v %: 4.783e-007 Vysledny moment setrvacnost: Cas potrebny pro vypocet IT: 0s krok: 3.5 Moment setrvacnost: chyb: Moment setrvacnost: chyb: 0, Chyba v %: 0 Chyba v %: 8.737e-007 Moment setrvacnost: Moment setrvacnost: chyb: Chyba v %: 4.783e-007 chyb: 0, Chyba v %: 0 Moment setrvacnost:

70 chyb: Chyba v %: 8.737e-007 Vysledny moment setrvacnost: Cas potrebny pro vypocet IT: 0s krok: 5.65 Moment setrvacnost: chyb: 3 Chyba v %: 7.75e-006 Vysledny moment setrvacnost: Cas potrebny pro vypocet IT: s Moment setrvacnost: chyb: 0, Chyba v %: 0 Moment setrvacnost: chyb: 3 Chyba v %: 7.75e

71 Příloha III. Analýza krychle Položka výsledné těžště je korekce původního těžště. Soubor Cube.wrl 8 vrcholu trojuhelnku Velkost kroku: 50 pruchod: chyb, v %: 9.596e-007 pruchod: chyb 0, v %: 0 3 pruchod: chyb, v %: 9.596e-007 tezste x: y: z: Cas potrebny pro vypocet tezste: s pruchod: Pocet chyb 0, v %: 0 pruchod: Pocet chyb 0, v %: 0 3 pruchod: Pocet chyb 0, v %: 0 Vysledny moment setrvacnost: Cas potrebny pro vypocet IT: 0 s Celkovy cas: s Soubor Cube.wrl 8 vrcholu trojuhelnku Velkost kroku: 0 pruchod: Pocet chyb, v %: 7.837e-006 pruchod: Pocet chyb 0, v %: 0 3 pruchod: Pocet chyb, v %: 7.837e-006 tezste x: y: z: Cas potrebny pro vypocet tezste: 0s pruchod: Pocet chyb 0, v %: 0 pruchod: Pocet chyb 0, v %: 0 3 pruchod: Pocet chyb 0, v %: 0 Vysledny moment setrvacnost: Cas potrebny pro vypocet IT: s Celkovy cas: s Rozdíl mez výpočty cca 7,3 % Soubor Cube.wrl 8 vrcholu trojuhelnku Velkost kroku: 5 pruchod: Pocet chyb 6, v %:.96003e-005 pruchod: Pocet chyb 0, v %: 0 3 pruchod: Pocet chyb 6, v %:.96003e-005 tezste x: y: z: Cas potrebny pro vypocet tezste: s pruchod: Pocet chyb 0, v %: 0 pruchod: Pocet chyb 0, v %: 0 3 pruchod: Pocet chyb 0, v %: 0 Vysledny moment setrvacnost: Cas potrebny pro vypocet IT: 9 s Celkovy cas: 0s Rozdíl mez výpočty cca 0,73 % Soubor Cube.wrl 8 vrcholu trojuhelnku Velkost kroku:.5 pruchod: Pocet chyb 5, v %: e-005 pruchod: Pocet chyb 0, v %: 0 3 pruchod: Pocet chyb 5, v %: e-005 tezste x: y: z: Cas potrebny pro vypocet tezste: 3s pruchod: Pocet chyb 0, v %: 0 pruchod: Pocet chyb 0, v %: 0 3 pruchod: Pocet chyb 0, v %: 0 Vysledny moment setrvacnost: Cas potrebny pro vypocet IT: 7 s Celkovy cas: 75s Rozdíl mez výpočty cca 0,53 % Soubor Cube.wrl 8 vrcholu trojuhelnku Velkost kroku:.5 pruchod: Pocet chyb 0, v %: 7.96e-005 pruchod: Pocet chyb 0, v %: 0 3 pruchod: Pocet chyb 0, v %: 7.96e-005 tezste x: y: z: Cas potrebny pro vypocet tezste: 7s pruchod: Pocet chyb 0, v %: 0 pruchod: Pocet chyb 0, v %: 0 3 pruchod: Pocet chyb 0, v %: 0 Vysledny moment setrvacnost: 70

72 Cas potrebny pro vypocet IT: 745 s Celkovy cas: 77s Rozdíl mez výpočty cca 6,8 % Soubor Cube.wrl 8 vrcholu trojuhelnku Velkost kroku: pruchod: Pocet chyb 03, v %: pruchod: Pocet chyb 0, v %: 0 3 pruchod: Pocet chyb 03, v %: tezste x: y: z: Cas potrebny pro vypocet tezste: 4s pruchod: Pocet chyb 0, v %: 0 pruchod: Pocet chyb 0, v %: 0 3 pruchod: Pocet chyb 0, v %: 0 Vysledny moment setrvacnost: Cas potrebny pro vypocet IT: 073 s Celkovy cas: 4s Rozdíl mez výpočty cca 40 % Soubor Cube.wrl 8 vrcholu trojuhelnku Velkost kroku: 0.65 pruchod: Pocet chyb 39, v %: pruchod: Pocet chyb 0, v %: 0 3 pruchod: Pocet chyb 39, v %: tezste x: y: z: Cas potrebny pro vypocet tezste: 69s pruchod: Pocet chyb 0, v %: 0 pruchod: Pocet chyb 0, v %: 0 3 pruchod: Pocet chyb 0, v %: 0 Vysledny moment setrvacnost: Cas potrebny pro vypocet IT: 530 s Celkovy cas: 5370s Rozdíl mez výpočty cca 8.9 % Soubor Cube.wrl 8 vrcholu trojuhelnku Velkost kroku: 0.5 pruchod: Pocet chyb 5, v %: pruchod: Pocet chyb 0, v %: 0 3 pruchod: Pocet chyb 5, v %: tezste x: y: z: Cas potrebny pro vypocet tezste: 3s pruchod: Pocet chyb 0, v %: 0 pruchod: Pocet chyb 0, v %: 0 3 pruchod: Pocet chyb 0, v %: 0 Vysledny moment setrvacnost: Cas potrebny pro vypocet IT: 350 s Celkovy cas: 48s Rozdíl mez výpočty cca 8,3 % Soubor Cube.wrl 8 vrcholu trojuhelnku Velkost kroku: pruchod: chyb 43, v %: pruchod: chyb 0, v %: 0 3 pruchod: chyb 43, v %: tezste x: y: z: Cas potrebny pro vypocet tezste: 40s pruchod: Pocet chyb 0, v procentech: 0 pruchod: Pocet chyb 0, v procentech: 0 3 pruchod: Pocet chyb 0, v procentech: 0 Vysledny moment setrvacnost: Cas potrebny pro vypocet IT: 556 s Celkovy cas: 5666s Rozdíl mez výpočty cca 4% 7

73 Příloha IV. Analýza jehlanu Soubor cone.wrl 50 vrcholu 96 trojuhelnku Velkost kroku: 30 pruchod: chyb 0, v %: 0 pruchod: chyb, v %: 4.094e pruchod: chyb 0, v %: 0 tezste x: y: z: Cas potrebny pro vytezste: 0s pruchod: chyb 0, v %: 0 pruchod: chyb 0, v %: 0 3 pruchod: chyb 0, v %: 0 Vysledny moment setrvacnost: Cas potrebny pro vyit: 0 s Celkovy cas: 0s Soubor cone.wrl 50 vrcholu 96 trojuhelnku Velkost kroku:.5 pruchod: chyb 0, v %: 0 pruchod: chyb 4, v %: pruchod: chyb 0, v %: 0 tezste x: y: z: Cas potrebny pro vytezste: 4s pruchod: chyb 0, v %: 0 pruchod: chyb 37, v %: pruchod: chyb 0, v %: 0 Vysledny moment setrvacnost: Cas potrebny pro vyit: s Celkovy cas: 6s Rozdíl mez výpočty cca 9% Soubor cone.wrl 50 vrcholu 96 trojuhelnku Velkost kroku: 0.75 pruchod: chyb 0, v %: 0 pruchod: chyb 53, v %: pruchod: chyb 0, v %: 0 tezste x: y: z: Cas potrebny pro vytezste: 6s pruchod: chyb 0, v %: 0 pruchod: chyb 3, v %: pruchod: chyb 0, v %: 0 Vysledny moment setrvacnost: Cas potrebny pro vyit: 79 s Celkovy cas: 95s Rozdíl mez výpočty cca,% Soubor cone.wrl 50 vrcholu 96 trojuhelnku Velkost kroku: 0.5 pruchod: chyb 0, v %: 0 pruchod: chyb 356, v %: pruchod: chyb 0, v %: 0 tezste x: y: z: Cas potrebny pro vytezste: 50s pruchod: chyb 0, v %: 0 pruchod: chyb 98, v %: pruchod: chyb 0, v %: 0 Vysledny moment setrvacnost: Cas potrebny pro vyit: 345 s Celkovy cas: 395s Rozdíl mez výpočty cca,8% Soubor cone.wrl 50 vrcholu 96 trojuhelnku Velkost kroku: pruchod: chyb 0, v %: 0 pruchod: chyb 593, v %: pruchod: chyb 0, v %: 0 tezste x: y: z: Cas potrebny pro vytezste: 65s pruchod: chyb 0, v %: 0 pruchod: chyb 499, v %: pruchod: chyb 0, v %: 0 Vysledny moment setrvacnost:

74 Cas potrebny pro vyit: 575 s Celkovy cas: 640s Rozdíl mez výpočty cca,9% Soubor cone.wrl 50 vrcholu 96 trojuhelnku Velkost kroku: 0.3 pruchod: chyb 0, v %: 0 pruchod: chyb 778, v %: pruchod: chyb 0, v %: 0 tezste x: y: z: Cas potrebny pro vytezste: 03s pruchod: chyb, v %: e-005 pruchod: chyb 748, v %: pruchod: chyb 0, v %: 0 Vysledny moment setrvacnost: Cas potrebny pro vyit: 6 s Celkovy cas: 9s Rozdíl mez výpočty cca 3, % Soubor cone.wrl 50 vrcholu 96 trojuhelnku Velkost kroku: 0.5 pruchod: chyb 0, v %: 0 pruchod: chyb 47, v %: pruchod: chyb 0, v %: 0 tezste x: y: z: Cas potrebny pro vytezste: 55s pruchod: chyb 0, v %: 0 pruchod: chyb 63, v %: pruchod: chyb 0, v %: 0 Vysledny moment setrvacnost: Cas potrebny pro vyit: 905 s Celkovy cas: 060s Rozdíl mez výpočty cca 3, % Soubor cone.wrl 50 vrcholu 96 trojuhelnku Velkost kroku: 0. pruchod: chyb 6, v %: e-005 pruchod: chyb 85, v %: pruchod: chyb 5, v %: 4.445e-005 tezste x: y: z: Cas potrebny pro vytezste: 56s pruchod: chyb, v %: 8.797e-006 pruchod: chyb 8, v %: pruchod: chyb 6, v %: e-005 Vysledny moment setrvacnost: Cas potrebny pro vyit: 3545 s Celkovy cas: 380s Rozdíl mez výpočty cca 6,7 % 73

75 Příloha V. Analýza stíhače Soubor Bomber.wrl 4 vrcholu 78 trojuhelnku Velkost kroku: 39.4 pruchod: chyb 0, v %: 0 pruchod: chyb 0, v %: 0 3 pruchod: chyb 0, v %: 0 tezste x:0.550 y: z: Cas potrebny pro vytezste: 0s pruchod: chyb 0, v %: 0 pruchod: chyb 0, v %: 0 3 pruchod: chyb 0, v %: 0 Vysledny moment setrvacnost: Cas potrebny pro vyit: 0 s Celkovy cas: 0s Soubor Bomber.wrl 4 vrcholu 78 trojuhelnku Velkost kroku: 7.88 pruchod: chyb 0, v %: 0 pruchod: chyb 0, v %: 0 3 pruchod: chyb 0, v %: 0 tezste x:.0009 y: z: Cas potrebny pro vytezste: 0s pruchod: chyb 0, v %: 0 pruchod: chyb 0, v %: 0 3 pruchod: chyb 0, v %: 0 Vysledny moment setrvacnost: Cas potrebny pro vyit: s Celkovy cas: s Rozdíl mez výpočty cca 3,8% Soubor Bomber.wrl 4 vrcholu 78 trojuhelnku Velkost kroku: 3.94 pruchod: chyb 0, v %: 0 pruchod: chyb 0, v %: 0 3 pruchod: chyb 0, v %: 0 tezste x: y: z: Cas potrebny pro vytezste: s pruchod: chyb 0, v %: 0 pruchod: chyb 0, v %: 0 3 pruchod: chyb 0, v %: 0 Vysledny moment setrvacnost: Cas potrebny pro vyit: s Celkovy cas: s Rozdíl mez výpočty cca 4,6% Soubor Bomber.wrl 4 vrcholu 78 trojuhelnku Velkost kroku:.97 pruchod: chyb 0, v %: 0 pruchod: chyb 0, v %: 0 3 pruchod: chyb, v %: e-006 tezste x: y: z: Cas potrebny pro vytezste: 3s pruchod: chyb 0, v %: 0 pruchod: chyb 0, v %: 0 3 pruchod: chyb, v %: e-006 Vysledny moment setrvacnost: Cas potrebny pro vyit: 4 s Celkovy cas: 7s Soubor Bomber.wrl 4 vrcholu 78 trojuhelnku Velkost kroku: pruchod: chyb 0, v %: 0 pruchod: chyb 0, v %: 0 3 pruchod: chyb 4, v %: tezste x:0.858 y: z: Cas potrebny pro vytezste: 0s pruchod: chyb 0, v %: 0 pruchod: chyb 0, v %: 0 3 pruchod: chyb 4, v %: Vysledny moment setrvacnost: Cas potrebny pro vyit: s Celkovy cas: 3s 74

76 Rozdíl mez výpočty cca 0,8% Soubor Bomber.wrl 4 vrcholu 78 trojuhelnku Velkost kroku: pruchod: chyb, v %: 8.807e-006 pruchod: chyb, v %: 8.807e pruchod: chyb 3, v %:.643e-005 tezste x: y: z: Cas potrebny pro vytezste: s pruchod: chyb 0, v %: 0 pruchod: chyb 0, v %: 0 3 pruchod: chyb 3, v %:.65e-005 Vysledny moment setrvacnost: Cas potrebny pro vyit: 64 s Celkovy cas: 85s Rozdíl mez výpočty cca 0,% Soubor Bomber.wrl 4 vrcholu 78 trojuhelnku Velkost kroku: pruchod: chyb, v %: e-006 pruchod: chyb, v %:.7785e pruchod: chyb 8, v %: e-005 tezste x: y: z:-0.0 Cas potrebny pro vytezste: 38s pruchod: chyb, v %: e-006 pruchod: chyb, v %: e pruchod: chyb 8, v %: Vysledny moment setrvacnost: Cas potrebny pro vyit: 33 s Celkovy cas: 7s Rozdíl mez výpočty cca,% Soubor Bomber.wrl 4 vrcholu 78 trojuhelnku Velkost kroku: pruchod: chyb, v %: e-006 pruchod: chyb, v %:.7777e pruchod: chyb 3, v %: tezste x: y: z: Cas potrebny pro vytezste: 59s pruchod: chyb, v %: e-006 pruchod: chyb, v %: e pruchod: chyb 7, v %: Vysledny moment setrvacnost: Cas potrebny pro vyit: 60 s Celkovy cas: 39s Rozdíl mez výpočty cca,6% Soubor Bomber.wrl 4 vrcholu 78 trojuhelnku Velkost kroku: pruchod: chyb 0, v %: 0 pruchod: chyb 3, v %:.6746e pruchod: chyb 55, v %: tezste x: y: z: Cas potrebny pro vytezste: 86s pruchod: chyb 0, v %: 0 pruchod: chyb 5, v %: 4.403e pruchod: chyb 8, v %: Vysledny moment setrvacnost: Cas potrebny pro vyit: 49 s Celkovy cas: 55s Rozdíl mez výpočty cca 7,7% Soubor Bomber.wrl 4 vrcholu 78 trojuhelnku Velkost kroku: pruchod: chyb 3, v %:.67836e-005 pruchod: chyb 6, v %: e pruchod: chyb 3, v %: tezste x: y: z: Cas potrebny pro vytezste: 36s pruchod: chyb 3, v %:.64709e-005 pruchod: chyb 6, v %: 5.948e pruchod: chyb 5, v %:

77 Vysledny moment setrvacnost: Cas potrebny pro vyit: 80 s Celkovy cas: 946s Rozdíl mez výpočty cca,7% Soubor Bomber.wrl 4 vrcholu 78 trojuhelnku Velkost kroku: 0.97 pruchod: chyb, v %: e-006 pruchod: chyb 39, v %: pruchod: chyb 09, v %: tezste x: y: z: Cas potrebny pro vytezste: 46s pruchod: chyb, v %: e-006 pruchod: chyb 7, v %: 6.904e pruchod: chyb 87, v %: Vysledny moment setrvacnost: Cas potrebny pro vyit: 89 s Celkovy cas: 065s Rozdíl mez výpočty cca 7.3% 76

78 Příloha VI. Ovládání aplkace a screenshoty Hlavní aplkace průlet tunelem, se ovládá následovně: Zobrazení nápovědy F/H Volba ovládání: Relatvní (mění se působící síla na těleso) Relatvní s autoplotem (default) Přepnutí mez klávesncí a myší (default=klávesnce) M/m Ovládání stíhačky: Střelba Ovládání translace Ovládání rotace špkam F, levé tlačítko myš A,S,W,D (Q-Nahoru,E-Dolu) Kursorove špky (CTRL+Left/Rght - rotace kolem směrové osy) Myš Ovládání rotace myší (CTRL+Myš - rotace kolem směrové osy) Zastavení veškerého pohybu (ekvvalent ruční brzdě) SPACE Ostatn nastavení: Zvýšení odporu prostředí Snížení odporu prostředí Přepínání kamery Pozce kamery Pozce kamery (clen) T R V X,C Tab Ostatní aplkace jsou jen demonstrační jedné možné ovládání je: Zobrazení nápovědy Ostatn nastavení: Zvýšení odporu prostředí Snížení odporu prostředí Zapnutí gravtace Vypnutí gravtace F/H T R G+Špka dolů G+Špka nahoru 77

79 Aplkace Box Cubes Aplkace Box - Fghter 78

80 Aplkace Box Objects Aplkace Box Průlet tunelem 79

81 80

Numerická matematika 1. t = D u. x 2 (1) tato rovnice určuje chování funkce u(t, x), která závisí na dvou proměnných. První

Numerická matematika 1. t = D u. x 2 (1) tato rovnice určuje chování funkce u(t, x), která závisí na dvou proměnných. První Numercká matematka 1 Parabolcké rovnce Budeme se zabývat rovncí t = D u x (1) tato rovnce určuje chování funkce u(t, x), která závsí na dvou proměnných. První proměnná t mívá význam času, druhá x bývá

Více

FYZIKA I. Pohybová rovnice. Prof. RNDr. Vilém Mádr, CSc. Prof. Ing. Libor Hlaváč, Ph.D. Doc. Ing. Irena Hlaváčová, Ph.D. Mgr. Art.

FYZIKA I. Pohybová rovnice. Prof. RNDr. Vilém Mádr, CSc. Prof. Ing. Libor Hlaváč, Ph.D. Doc. Ing. Irena Hlaváčová, Ph.D. Mgr. Art. VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ FYZIKA I Pohybová rovnce Prof. RNDr. Vlém Mádr, CSc. Prof. Ing. Lbor Hlaváč, Ph.D. Doc. Ing. Irena Hlaváčová, Ph.D. Mgr. Art. Dagmar Mádrová

Více

Energie elektrického pole

Energie elektrického pole Energe elektrckého pole Jž v úvodní kaptole jsme poznal, že nehybný (centrální elektrcký náboj vytváří v celém nekonečném prostoru slové elektrcké pole, které je konzervatvní, to znamená, že jakýkolv jný

Více

Momenty setrvačnosti a deviační momenty

Momenty setrvačnosti a deviační momenty Momenty setrvačnosti a deviační momenty Momenty setrvačnosti a deviační momenty charakterizují spolu shmotností a statickými momenty hmoty rozložení hmotnosti tělesa vprostoru. Jako takové se proto vyskytují

Více

8a.Objektové metody viditelnosti. Robertsův algoritmus

8a.Objektové metody viditelnosti. Robertsův algoritmus 8a. OBJEKOVÉ MEODY VIDIELNOSI Cíl Po prostudování této kaptoly budete znát metody vdtelnost 3D objektů na základě prostorových vlastností těchto objektů tvořt algortmy pro určování vdtelnost hran a stěn

Více

Statika soustavy těles v rovině

Statika soustavy těles v rovině Statka soustavy těles v rovně Zpracoval: Ing. Mroslav yrtus, Ph.. U mechancké soustavy s deálním knematckým dvojcem znázorněné na obrázku určete: počet stupňů volnost početně všechny reakce a moment M

Více

Korelační energie. Celkovou elektronovou energii molekuly lze experimentálně určit ze vztahu. E vib. = E at. = 39,856, E d

Korelační energie. Celkovou elektronovou energii molekuly lze experimentálně určit ze vztahu. E vib. = E at. = 39,856, E d Korelační energe Referenční stavy Energ molekul a atomů lze vyjádřt vzhledem k různým referenčním stavům. V kvantové mechance za referenční stav s nulovou energí bereme stav odpovídající nenteragujícím

Více

Matematika I A ukázkový test 1 pro 2018/2019

Matematika I A ukázkový test 1 pro 2018/2019 Matematka I A ukázkový test 1 pro 2018/2019 1. Je dána soustava rovnc s parametrem a R x y + z = 1 x + y + 3z = 1 (2a 1)x + (a + 1)y + z = 1 a a) Napšte Frobenovu větu (předpoklady + tvrzení). b) Vyšetřete

Více

MODELOVÁNÍ A SIMULACE

MODELOVÁNÍ A SIMULACE MODELOVÁNÍ A SIMULACE základní pojmy a postupy vytváření matematckých modelů na základě blancí prncp numerckého řešení dferencálních rovnc základy práce se smulačním jazykem PSI Základní pojmy matematcký

Více

ANALÝZA VZTAHU DVOU SPOJITÝCH VELIČIN

ANALÝZA VZTAHU DVOU SPOJITÝCH VELIČIN ANALÝZA VZTAHU DVOU SPOJITÝCH VELIČIN V dokumentu 7a_korelacn_a_regresn_analyza jsme řešl rozdíl mez korelační a regresní analýzou. Budeme se teď věnovat pouze lneárnímu vztahu dvou velčn, protože je nejjednodušší

Více

Matematika 1 MA1. 1 Analytická geometrie v prostoru - základní pojmy. 4 Vzdálenosti. 12. přednáška ( ) Matematika 1 1 / 32

Matematika 1 MA1. 1 Analytická geometrie v prostoru - základní pojmy. 4 Vzdálenosti. 12. přednáška ( ) Matematika 1 1 / 32 Matematika 1 12. přednáška MA1 1 Analytická geometrie v prostoru - základní pojmy 2 Skalární, vektorový a smíšený součin, projekce vektoru 3 Přímky a roviny 4 Vzdálenosti 5 Příčky mimoběžek 6 Zkouška;

Více

ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ

ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ Parametrické vyjádření přímky v rovině Máme přímku p v rovině určenou body A, B. Sestrojíme vektor u = B A. Pro bod B tím pádem platí: B = A + u. Je zřejmé,

Více

SIMULACE. Numerické řešení obyčejných diferenciálních rovnic. Měřicí a řídicí technika magisterské studium FTOP - přednášky ZS 2009/10

SIMULACE. Numerické řešení obyčejných diferenciálních rovnic. Měřicí a řídicí technika magisterské studium FTOP - přednášky ZS 2009/10 SIMULACE numercké řešení dferencálních rovnc smulační program dentfkace modelu Numercké řešení obyčejných dferencálních rovnc krokové metody pro řešení lneárních dferencálních rovnc 1.řádu s počátečním

Více

Pracovní list č. 6: Stabilita svahu. Stabilita svahu. Návrh či posouzení svahu zemního tělesa. FS s

Pracovní list č. 6: Stabilita svahu. Stabilita svahu. Návrh či posouzení svahu zemního tělesa. FS s Pracovní lst č. 6: Stablta svahu Stablta svahu 1 - máme-l násyp nebo výkop, uvntř svahu vznká smykové napětí - aktvuje se smykový odpor zemny - porušení - na celé smykové ploše se postupně dosáhne maxma

Více

Parametrická rovnice přímky v rovině

Parametrická rovnice přímky v rovině Parametrická rovnice přímky v rovině Nechť je v kartézské soustavě souřadnic dána přímka AB. Nechť vektor u = B - A. Pak libovolný bod X[x; y] leží na přímce AB právě tehdy, když vektory u a X - A jsou

Více

KOMPLEXNÍ ČÍSLA. Algebraický tvar komplexního čísla

KOMPLEXNÍ ČÍSLA. Algebraický tvar komplexního čísla KOMPLEXNÍ ČÍSLA Příklad Řešte na množně reálných čísel rovnc: x + = 0. x = Rovnce nemá v R řešení. Taková jednoduchá rovnce a nemá na množně reálných čísel žádné řešení! Co s tím? Zavedeme tzv. magnární

Více

Osově namáhaný prut základní veličiny

Osově namáhaný prut základní veličiny Pružnost a pevnost BD0 Osově namáhaný prut základní velčny ormálová síla půsoící v průřezu osově namáhaného prutu se získá ntegrací normálového napětí po ploše průřezu. da A Vzhledem k rovnoměrnému rozložení

Více

Výslednice, rovnováha silové soustavy.

Výslednice, rovnováha silové soustavy. Výslednce, ovnováha slové soustavy. Základy mechanky, 2. přednáška Obsah přednášky : výslednce a ovnováha slové soustavy, ovnce ovnováhy, postoová slová soustava Doba studa : as 1,5 hodny Cíl přednášky

Více

Stanislav Olivík POROVNÁNÍ DVOU METOD HLEDÁNÍ ODRAZNÉHO BODU NA POVRCHU ELIPSOIDU

Stanislav Olivík POROVNÁNÍ DVOU METOD HLEDÁNÍ ODRAZNÉHO BODU NA POVRCHU ELIPSOIDU 5. KONFERENCE O GEOMETRII A POČÍTAČOVÉ GRAFICE Stanslav Olvík POROVNÁNÍ DVOU METOD HLEDÁNÍ ODRAZNÉHO BODU NA POVRCHU ELIPSOIDU Abstrakt Úlohou GPS altmetre je nalezení odrazného bodu sgnálu vyslaného z

Více

14. přednáška. Přímka

14. přednáška. Přímka 14 přednáška Přímka Začneme vyjádřením přímky v prostoru Přímku v prostoru můžeme vyjádřit jen parametricky protože obecná rovnice přímky v prostoru neexistuje Přímka v prostoru je určena bodem A= [ a1

Více

Iterační výpočty. Dokumentace k projektu pro předměty IZP a IUS. 22. listopadu projekt č. 2

Iterační výpočty. Dokumentace k projektu pro předměty IZP a IUS. 22. listopadu projekt č. 2 Dokumentace k projektu pro předměty IZP a IUS Iterační výpočty projekt č.. lstopadu 1 Autor: Mlan Setler, setl1@stud.ft.vutbr.cz Fakulta Informačních Technologí Vysoké Učení Techncké v Brně Obsah 1 Úvod...

Více

Statistická šetření a zpracování dat.

Statistická šetření a zpracování dat. Statstcká šetření a zpracování dat. Vyjadřovací prostředky ve statstce STATISTICKÉ TABULKY Typckým vyjadřovacím prostředkem statstky je číslo formalzovaným nástrojem číselného vyjádření je statstcká tabulka.

Více

A[a 1 ; a 2 ; a 3 ] souřadnice bodu A v kartézské soustavě souřadnic O xyz

A[a 1 ; a 2 ; a 3 ] souřadnice bodu A v kartézské soustavě souřadnic O xyz 1/15 ANALYTICKÁ GEOMETRIE Základní pojmy: Soustava souřadnic v rovině a prostoru Vzdálenost bodů, střed úsečky Vektory, operace s vektory, velikost vektoru, skalární součin Rovnice přímky Geometrie v rovině

Více

BIOMECHANIKA DYNAMIKA NEWTONOVY POHYBOVÉ ZÁKONY, VNITŘNÍ A VNĚJŠÍ SÍLY ČASOVÝ A DRÁHOVÝ ÚČINEK SÍLY

BIOMECHANIKA DYNAMIKA NEWTONOVY POHYBOVÉ ZÁKONY, VNITŘNÍ A VNĚJŠÍ SÍLY ČASOVÝ A DRÁHOVÝ ÚČINEK SÍLY BIOMECHANIKA DYNAMIKA NEWTONOVY POHYBOVÉ ZÁKONY, VNITŘNÍ A VNĚJŠÍ SÍLY ČASOVÝ A DRÁHOVÝ ÚČINEK SÍLY ROTAČNÍ POHYB TĚLESA, MOMENT SÍLY, MOMENT SETRVAČNOSTI DYNAMIKA Na rozdíl od kinematiky, která se zabývala

Více

19 Eukleidovský bodový prostor

19 Eukleidovský bodový prostor 19 Eukleidovský bodový prostor Eukleidovským bodovým prostorem rozumíme afinní bodový prostor, na jehož zaměření je definován skalární součin. Víme, že pomocí skalárního součinu jsou definovány pojmy norma

Více

4. Statika základní pojmy a základy rovnováhy sil

4. Statika základní pojmy a základy rovnováhy sil 4. Statika základní pojmy a základy rovnováhy sil Síla je veličina vektorová. Je určena působištěm, směrem, smyslem a velikostí. Působiště síly je bod, ve kterém se přenáší účinek síly na těleso. Směr

Více

Obsah. 2 Moment síly Dvojice sil Rozklad sil 4. 6 Rovnováha 5. 7 Kinetická energie tuhého tělesa 6. 8 Jednoduché stroje 8

Obsah. 2 Moment síly Dvojice sil Rozklad sil 4. 6 Rovnováha 5. 7 Kinetická energie tuhého tělesa 6. 8 Jednoduché stroje 8 Obsah 1 Tuhé těleso 1 2 Moment síly 2 3 Skládání sil 3 3.1 Skládání dvou různoběžných sil................. 3 3.2 Skládání dvou rovnoběžných, různě velkých sil......... 3 3.3 Dvojice sil.............................

Více

6. Demonstrační simulační projekt generátory vstupních proudů simulačního modelu

6. Demonstrační simulační projekt generátory vstupních proudů simulačního modelu 6. Demonstrační smulační projekt generátory vstupních proudů smulačního modelu Studjní cíl Na příkladu smulačního projektu představeného v mnulém bloku je dále lustrována metodka pro stanovování typů a

Více

Příprava ke státním maturitám 2011, vyšší úroveň obtížnosti materiál stažen z www.e-matematika.cz

Příprava ke státním maturitám 2011, vyšší úroveň obtížnosti materiál stažen z www.e-matematika.cz Příprava ke státním maturtám 0, všší úroveň obtížnost materál stažen z wwwe-matematkacz 80 60 Jsou dána čísla s 90, t 5 0 Ve stejném tvaru (součn co nejmenšího přrozeného čísla a mocnn deset) uveďte čísla

Více

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

CVIČNÝ TEST 1. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 21 IV. Záznamový list 23 CVIČNÝ TEST 1 Mgr. Tomáš Kotler OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 21 IV. Záznamový list 23 I. CVIČNÝ TEST 1 Určete výraz V, který je největším společným dělitelem výrazů V 1 V 3 :

Více

1.5. DYNAMIKA OTÁČIVÉHO A SLOŽENÉHO POHYBU TĚLESA

1.5. DYNAMIKA OTÁČIVÉHO A SLOŽENÉHO POHYBU TĚLESA .5. OTÁČIVÉHO A SLOŽENÉHO POHYBU TĚLESA.5. ZÁKLADNÍ ROVNICE DYNAMIKY PRO ROTAČNÍ POHYB Fz F Z výsednce zrychujících s F m.a n m a t a n r z F Zrychující moment M F. r F. r z z z m.a t r6,5cm ρ r ω,ε r

Více

MECHANIKA TUHÉHO TĚLESA

MECHANIKA TUHÉHO TĚLESA MECHANIKA TUHÉHO TĚLESA. Základní teze tuhé těleso ideální těleso, které nemůže být deformováno působením žádné (libovolně velké) vnější síly druhy pohybu tuhého tělesa a) translace (posuvný pohyb) všechny

Více

u (x i ) U i 1 2U i +U i+1 h 2. Na hranicích oblasti jsou uzlové hodnoty dány okrajovými podmínkami bud přímo

u (x i ) U i 1 2U i +U i+1 h 2. Na hranicích oblasti jsou uzlové hodnoty dány okrajovými podmínkami bud přímo Metoda sítí základní schémata h... krok sítě ve směru x, tj. h = x x q... krok sítě ve směru y, tj. q = y j y j τ... krok ve směru t, tj. τ = j... hodnota přblžného řešení v uzlu (x,y j ) (Possonova rovnce)

Více

Extrémy funkce dvou proměnných

Extrémy funkce dvou proměnných Extrémy funkce dvou proměnných 1. Stanovte rozměry pravoúhlé vodní nádrže o objemu 32 m 3 tak, aby dno a stěny měly nejmenší povrch. Označme rozměry pravoúhlé nádrže x, y, z (viz obr.). ak objem této nádrže

Více

Ivana Linkeová SPECIÁLNÍ PŘÍPADY NURBS REPREZENTACE. 2 NURBS reprezentace křivek

Ivana Linkeová SPECIÁLNÍ PŘÍPADY NURBS REPREZENTACE. 2 NURBS reprezentace křivek 25. KONFERENCE O GEOMETRII A POČÍTAČOVÉ GRAFICE Ivana Lnkeová SPECIÁLNÍ PŘÍPADY NURBS REPREZENTACE Abstrakt Příspěvek prezentuje B-splne křvku a Coonsovu, Bézerovu a Fergusonovu kubku jako specální případy

Více

LOGICKÉ OBVODY J I Ř Í K A L O U S E K

LOGICKÉ OBVODY J I Ř Í K A L O U S E K LOGICKÉ OBVODY J I Ř Í K A L O U S E K Ostrava 2006 Obsah předmětu 1. ČÍSELNÉ SOUSTAVY... 2 1.1. Číselné soustavy - úvod... 2 1.2. Rozdělení číselných soustav... 2 1.3. Polyadcké číselné soustavy... 2

Více

ALGORITMUS SILOVÉ METODY

ALGORITMUS SILOVÉ METODY ALGORITMUS SILOVÉ METODY CONSISTENT DEFORMATION METHOD ALGORITHM Petr Frantík 1, Mchal Štafa, Tomáš Pal 3 Abstrakt Příspěvek se věnuje popsu algortmzace slové metody sloužící pro výpočet statcky neurčtých

Více

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

CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 CVIČNÝ TEST 15 Mgr. Tomáš Kotler OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 I. CVIČNÝ TEST VÝCHOZÍ TEXT K ÚLOZE 1 Je dána čtvercová mřížka, v níž každý čtverec má délku

Více

Lokace odbavovacího centra nákladní pokladny pro víkendový provoz

Lokace odbavovacího centra nákladní pokladny pro víkendový provoz Markéta Brázdová 1 Lokace odbavovacího centra nákladní pokladny pro víkendový provoz Klíčová slova: odbavování záslek, centrum grafu, vážená excentrcta vrcholů sítě, časová náročnost odbavení záslky, vážená

Více

Projekty - Vybrané kapitoly z matematické fyziky

Projekty - Vybrané kapitoly z matematické fyziky Projekty - Vybrané kapitoly z matematické fyziky Klára Švarcová klara.svarcova@tiscali.cz 1 Obsah 1 Průlet tělesa skrz Zemi 3 1.1 Zadání................................. 3 1. Řešení.................................

Více

Čísla a aritmetika. Řádová čárka = místo, které odděluje celou část čísla od zlomkové.

Čísla a aritmetika. Řádová čárka = místo, které odděluje celou část čísla od zlomkové. Příprava na cvčení č.1 Čísla a artmetka Číselné soustavy Obraz čísla A v soustavě o základu z: m A ( Z ) a z (1) n kde: a je symbol (číslce) z je základ m je počet řádových míst, na kterých má základ kladný

Více

Rozvinutelné plochy. tvoří jednoparametrickou soustavu rovin a tedy obaluje rozvinutelnou plochu Φ. Necht jsou

Rozvinutelné plochy. tvoří jednoparametrickou soustavu rovin a tedy obaluje rozvinutelnou plochu Φ. Necht jsou Rozvinutelné plochy Rozvinutelná plocha je každá přímková plocha, pro kterou existuje izometrické zobrazení do rov iny, tj. lze ji rozvinout do roviny. Dá se ukázat, že každá rozvinutelná plocha patří

Více

ANALYTICKÁ GEOMETRIE V ROVINĚ

ANALYTICKÁ GEOMETRIE V ROVINĚ ANALYTICKÁ GEOMETRIE V ROVINĚ Analytická geometrie vyšetřuje geometrické objekty (body, přímky, kuželosečky apod.) analytickými metodami. Podle prostoru, ve kterém pracujeme, můžeme analytickou geometrii

Více

Cyklografie. Cyklický průmět bodu

Cyklografie. Cyklický průmět bodu Cyklografie Cyklografie je nelineární zobrazovací metoda - bodům v prostoru odpovídají kružnice v rovině a naopak. Úlohy v rovině pak převádíme na řešení prostorových úloh, např. pomocí cyklografie řešíme

Více

POROVNÁNÍ MEZI SKUPINAMI

POROVNÁNÍ MEZI SKUPINAMI POROVNÁNÍ MEZI SKUPINAMI Potřeba porovnání počtů mez určtým skupnam jednců např. porovnání počtů onemocnění mez kraj nebo okresy v prax se obvykle pracuje s porovnáním na 100.000 osob. Stuace ale nebývá

Více

KOMPLEXNÍ ČÍSLA (druhá část)

KOMPLEXNÍ ČÍSLA (druhá část) KOMPLEXNÍ ČÍSLA (druhá část) V první kaptole jsme se senáml s algebrackým tvarem komplexního čísla. Některé výpočty s komplexním čísly je však lépe provádět ve tvaru gonometrckém. Pon. V následujícím textu

Více

Odraz a lom rovinné monochromatické vlny na rovinném rozhraní dvou izotropních prostředí

Odraz a lom rovinné monochromatické vlny na rovinném rozhraní dvou izotropních prostředí Odraz a lom rovnné monochromatcké vlny na rovnném rozhraní dvou zotropních prostředí Doplňující předpoklady: prostředí č.1, ze kterého vlna dopadá na rozhraní neabsorbuje (má r r reálný ndex lomu), obě

Více

11 Zobrazování objektů 3D grafiky

11 Zobrazování objektů 3D grafiky 11 Zobrazování objektů 3D grafiky Studijní cíl Tento blok je věnován základním algoritmům zobrazení 3D grafiky. Postupně budou probrány základní metody projekce kolmé promítání, rovnoběžné promítání a

Více

6. ANALYTICKÁ GEOMETRIE

6. ANALYTICKÁ GEOMETRIE Vektorová algebra 6. ANALYTICKÁ GEOMETRIE Pravoúhlé souřadnice bodu v prostoru Poloha bodu v prostoru je vzhledem ke třem osám k sobě kolmým určena třemi souřadnicemi, které tvoří uspořádanou trojici reálných

Více

Analytická geometrie lineárních útvarů

Analytická geometrie lineárních útvarů ) Na přímce: a) Souřadnice bodu na přímce: Analtická geometrie lineárních útvarů Bod P nazýváme počátek - jeho souřadnice je P [0] Nalevo od počátku leží čísla záporná, napravo čísla kladná. Každý bod

Více

6. Vektorový počet Studijní text. 6. Vektorový počet

6. Vektorový počet Studijní text. 6. Vektorový počet 6. Vektorový počet Budeme se pohybovat v prostoru R n, což je kartézská mocnina množiny reálných čísel R; R n = R R. Obvykle nám bude stačit omezení na případy n = 1, 2, 3; nicméně teorie je platná obecně.

Více

Obecný Hookeův zákon a rovinná napjatost

Obecný Hookeův zákon a rovinná napjatost Obecný Hookeův zákon a rovinná napjatost Základní rovnice popisující napěťově-deformační chování materiálu při jednoosém namáhání jsou Hookeův zákon a Poissonův zákon. σ = E ε odtud lze vyjádřit také poměrnou

Více

16. Matematický popis napjatosti

16. Matematický popis napjatosti p16 1 16. Matematický popis napjatosti Napjatost v bodě tělesa jsme definovali jako množinu obecných napětí ve všech řezech, které lze daným bodem tělesa vést. Pro jednoznačný matematický popis napjatosti

Více

MOŽNOSTI MODELOVÁNÍ A ŘEŠENÍ STŘETU PŘI OBJASŇOVÁNÍ FINGOVANÝCH DOPRAVNÍCH NEHOD

MOŽNOSTI MODELOVÁNÍ A ŘEŠENÍ STŘETU PŘI OBJASŇOVÁNÍ FINGOVANÝCH DOPRAVNÍCH NEHOD XV. konference absolventů studa technckého znalectví s meznárodní účastí MOŽNOSTI MODELOVÁNÍ A ŘEŠENÍ STŘETU PŘI OBJASŇOVÁNÍ FINGOVANÝCH DOPRAVNÍCH NEHOD Zdeněk Mrázek 1 1. Ř ešení stř etu u fngovaných

Více

KOMPLEXNÍ ČÍSLA. Algebraický tvar komplexního čísla

KOMPLEXNÍ ČÍSLA. Algebraický tvar komplexního čísla KOMPLEXNÍ ČÍSLA Příklad 1 Řešte na množně reálných čísel rovnc: x + = 0. x = Rovnce nemá v R řešení. Taková jednoduchá rovnce a nemá na množně reálných čísel žádné řešení! Co s tím? Zavedeme tzv. magnární

Více

Numerické metody optimalizace

Numerické metody optimalizace Numercké metody optmalzace Numercal optmzaton methods Bc. Mloš Jurek Dplomová práce 2007 Abstrakt Abstrakt česky Optmalzační metody představují vyhledávání etrémů reálných funkcí jedné nebo více reálných

Více

SMR 1. Pavel Padevět

SMR 1. Pavel Padevět SMR Pavel Padevět Oganzace předmětu Přednášející Pavel Padevět, K 3, D 09 e-mal: pavel.padevet@fsv.cvut.cz Infomace k předmětu: https://mech.fsv.cvut.cz/student SMR Heslo: odné číslo bez lomítka (případně

Více

b) Po etní ešení Všechny síly soustavy tedy p eložíme do po átku a p ipojíme p íslušné dvojice sil Všechny síly soustavy nahradíme složkami ve sm

b) Po etní ešení Všechny síly soustavy tedy p eložíme do po átku a p ipojíme p íslušné dvojice sil Všechny síly soustavy nahradíme složkami ve sm b) Početní řešení Na rozdíl od grafického řešení určíme při početním řešení bod, kterým nositelka výslednice bude procházet. Mějme soustavu sil, která obsahuje n - sil a i - silových dvojic obr.36. Obr.36.

Více

Nejprve určíme posouvající sílu. Pokud postupujeme zprava, zjistíme, že zde nepůsobí žádné silové účinky, píšeme proto:

Nejprve určíme posouvající sílu. Pokud postupujeme zprava, zjistíme, že zde nepůsobí žádné silové účinky, píšeme proto: Řešte daný nosník: a,m, b,m, c,m, F = 5kN, kn bychom nal kompletně slové účnky působící na nosník, nejprve vyšetříme reakce v uloženích. Reakc určíme například momentové podmínky rovnováhy k bodu. Fb =

Více

9. Měření kinetiky dohasínání fluorescence ve frekvenční doméně

9. Měření kinetiky dohasínání fluorescence ve frekvenční doméně 9. Měření knetky dohasínání fluorescence ve frekvenční doméně Gavolův experment (194) zdroj vzorek synchronní otáčení fázový posun detektor Měření dob žvota lumnscence Frekvenční doména - exctace harmoncky

Více

1.13 Klasifikace kvadrik

1.13 Klasifikace kvadrik 5 KAPITOLA 1. KVADRIKY JAKO PLOCHY. STUPNĚ 1.13 Klasifikace kvadrik V této části provedeme klasifikaci kvadrik. Vyšetříme všechny případy, které mohou různou volbou koeficientů v rovnici kvadriky a 11

Více

3.1. Newtonovy zákony jsou základní zákony klasické (Newtonovy) mechaniky

3.1. Newtonovy zákony jsou základní zákony klasické (Newtonovy) mechaniky 3. ZÁKLADY DYNAMIKY Dynamika zkoumá příčinné souvislosti pohybu a je tedy zdůvodněním zákonů kinematiky. K pojmům používaným v kinematice zavádí pojem hmoty a síly. Statický výpočet Dynamický výpočet -

Více

Těžiště. Fyzikální význam těžiště:

Těžiště. Fyzikální význam těžiště: ěžště Fykální výnam těžště: a) hmotný bod se soustředěnou hmotností útvaru b) bod, ve kterém le hmotný útvar vystavený tíe podepřít prot posunutí anž by docháelo k rotac ěžště je chápáno jako statcký střed

Více

2.5 Rovnováha rovinné soustavy sil

2.5 Rovnováha rovinné soustavy sil Projekt: Inovace oboru Mechatronik pro Zlínský kraj Registrační číslo: CZ.1.07/1.1.08/03.0009 2.5 Rovnováha rovinné soustavy sil Rovnováha sil je stav, kdy na těleso působí více sil, ale jejich výslednice

Více

ZÁPADOČESKÁ UNIVERZITA V PLZNI

ZÁPADOČESKÁ UNIVERZITA V PLZNI ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA STROJNÍ Semestrální práce z předmětu MM Stanovení deformace soustav ocelových prutů Václav Plánčka 6..006 OBSAH ZADÁNÍ... 3 TEORETICKÁ ČÁST... 4 PRAKTICKÁ ČÁST...

Více

Rychlost, zrychlení, tíhové zrychlení

Rychlost, zrychlení, tíhové zrychlení Úloha č. 3 Rychlost, zrychlení, tíhové zrychlení Úkoly měření: 1. Sestavte nakloněnou rovinu a změřte její sklon.. Změřte závislost polohy tělesa na čase a stanovte jeho rychlost a zrychlení. 3. Určete

Více

permutace, popisující nějaké symetrie, je i π permutace, popisující nějakou symetrii.

permutace, popisující nějaké symetrie, je i π permutace, popisující nějakou symetrii. DSM Cv Pólyova věta Budeme se zabývat objekty (na množně X - to jsou vrcholy těchto objektů) s různým prvky symetre (například to mohou být různé brože, tsky, ale také strukturní vzorce různých chemckých

Více

POTENCIÁL ELEKTRICKÉHO POLE ELEKTRICKÉ NAPĚTÍ

POTENCIÁL ELEKTRICKÉHO POLE ELEKTRICKÉ NAPĚTÍ POTENCIÁL ELEKTRICKÉHO POLE ELEKTRICKÉ NAPĚTÍ ELEKTRICKÝ POTENCIÁL Elektrcká potencální energe Newtonův zákon pro gravtační sílu mm F = G r 1 2 2 Coulombův zákon pro elektrostatckou sílu QQ F = k r 1 2

Více

VZOROVÝ TEST PRO 2. ROČNÍK (2. A, 4. C)

VZOROVÝ TEST PRO 2. ROČNÍK (2. A, 4. C) VZOROVÝ TEST PRO. ROČNÍK (. A, 4. C) max. body 1 Vypočtěte danou goniometrickou rovnici a výsledek uveďte ve stupních a radiánech. cos x + sin x = 1 4 V záznamovém archu uveďte celý postup řešení. Řešte

Více

A u. jsou po řadě počáteční a koncové body úsečky; t je parametr:

A u. jsou po řadě počáteční a koncové body úsečky; t je parametr: 1 Úvod Trangulace oblast má dnes využtí například v počítačové grafce nebo numercké matematce, kde základní algortmy pro výpočet parcálních dferencálních rovnc vyžadují rozdělení zadané souvslé oblast

Více

Seriál II.II Vektory. Výfučtení: Vektory

Seriál II.II Vektory. Výfučtení: Vektory Výfučtení: Vektory Abychom zcela vyjádřili veličiny jako hmotnost, teplo či náboj, stačí nám k tomu jediné číslo (s příslušnou jednotkou). Říkáme jim skalární veličiny. Běžně se však setkáváme i s veličinami,

Více

Kapitola 2. o a paprsek sil lze ztotožnit s osou x (obr.2.1). sil a velikost rovnou algebraickému součtu sil podle vztahu R = F i, (2.

Kapitola 2. o a paprsek sil lze ztotožnit s osou x (obr.2.1). sil a velikost rovnou algebraickému součtu sil podle vztahu R = F i, (2. Kapitola 2 Přímková a rovinná soustava sil 2.1 Přímková soustava sil Soustava sil ležící ve společném paprsku se nazývá přímková soustava sil [2]. Působiště všech sil m i lze posunout do společného bodu

Více

P R O M Í T Á N Í. rovina π - průmětna vektor s r - směr promítání. a // s r, b// s r,

P R O M Í T Á N Í. rovina π - průmětna vektor s r - směr promítání. a // s r, b// s r, P R O M Í T Á N Í Promítání je zobrazení prostorového útvaru do roviny. Je určeno průmětnou a směrem (rovnoběžné) nebo středem (středové) promítání. Princip rovnoběžného promítání rovina π - průmětna vektor

Více

Skládání různoběžných kmitů. Skládání kolmých kmitů. 1) harmonické kmity stejné frekvence :

Skládání různoběžných kmitů. Skládání kolmých kmitů. 1) harmonické kmity stejné frekvence : Skládání různoběžných kmitů Uvědomme si principiální bod tohoto problému : na jediný hmotný bod působí dvě nezávislé pružné síl ve dvou různých směrech. Jednotlivé mechanické pohb, které se budou skládat,

Více

3 VYBRANÉ MODELY NÁHODNÝCH VELIČIN. 3.1 Náhodná veličina

3 VYBRANÉ MODELY NÁHODNÝCH VELIČIN. 3.1 Náhodná veličina 3 VBRANÉ MODEL NÁHODNÝCH VELIČIN 3. Náhodná velčna Tato kaptola uvádí stručný pops vybraných pravděpodobnostních modelů spojtých náhodných velčn s důrazem na jejch uplatnění př rozboru spolehlvost stavebních

Více

Lingebraické kapitolky - Analytická geometrie

Lingebraické kapitolky - Analytická geometrie Lingebraické kapitolky - Analytická geometrie Jaroslav Horáček KAM MFF UK 2013 Co je to vektor? Šipička na tabuli? Ehm? Množina orientovaných úseček majících stejný směr. Prvek vektorového prostoru. V

Více

Řešíme tedy soustavu dvou rovnic o dvou neznámých. 2a + b = 3, 6a + b = 27,

Řešíme tedy soustavu dvou rovnic o dvou neznámých. 2a + b = 3, 6a + b = 27, Přijímací řízení 2015/16 Přírodovědecká fakulta Ostravská univerzita v Ostravě Navazující magisterské studium, obor Aplikovaná matematika (1. červen 2016) Příklad 1 Určete taková a, b R, aby funkce f()

Více

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

CVIČNÝ TEST 36. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 CVIČNÝ TEST 36 Mgr. Tomáš Kotler OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 I. CVIČNÝ TEST 1 Určete iracionální číslo, které je vyjádřeno číselným výrazem (6 2 π 4

Více

CVIČNÝ TEST 5. OBSAH I. Cvičný test 2. Mgr. Václav Zemek. II. Autorské řešení 6 III. Klíč 17 IV. Záznamový list 19

CVIČNÝ TEST 5. OBSAH I. Cvičný test 2. Mgr. Václav Zemek. II. Autorské řešení 6 III. Klíč 17 IV. Záznamový list 19 CVIČNÝ TEST 5 Mgr. Václav Zemek OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 17 IV. Záznamový list 19 I. CVIČNÝ TEST 1 Zjednodušte výraz (2x 5) 2 (2x 5) (2x + 5) + 20x. 2 Určete nejmenší trojciferné

Více

X = A + tu. Obr x = a 1 + tu 1 y = a 2 + tu 2, t R, y = kx + q, k, q R (6.1)

X = A + tu. Obr x = a 1 + tu 1 y = a 2 + tu 2, t R, y = kx + q, k, q R (6.1) .6. Analtická geometrie lineárních a kvadratických útvarů v rovině. 6.1. V této kapitole budeme studovat geometrické úloh v rovině analtick, tj. lineární a kvadratické geometrické útvar vjádříme pomocí

Více

1 Tuhé těleso a jeho pohyb

1 Tuhé těleso a jeho pohyb 1 Tuhé těleso a jeho pohyb Tuhé těleso (TT) působením vnějších sil se nemění jeho tvar ani objem nedochází k jeho deformaci neuvažuje se jeho částicová struktura, těleso považujeme za tzv. kontinuum spojité

Více

Určení tlouštky folie metodou konvergentního elektronového svazku (TEM)-studijní text.

Určení tlouštky folie metodou konvergentního elektronového svazku (TEM)-studijní text. Určení tlouštky fole metodou konverentního elektronového svazku (TEM)-studjní text. Pracovní úkol: 1) Nastavte a vyfotorafujte snímek dfrakce elektronů v konverentním svazku, který je vhodný pro určení

Více

M - Příprava na 1. čtvrtletku pro třídu 4ODK

M - Příprava na 1. čtvrtletku pro třídu 4ODK M - Příprava na 1. čtvrtletku pro třídu 4ODK Autor: Mgr. Jaromír Juřek Kopírování a jakékoliv další využití výukového materiálu povoleno pouze s odkazem na www.jarjurek.cz. VARIACE 1 Tento dokument byl

Více

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ PRŮVODCE GB01-P03 MECHANIKA TUHÝCH TĚLES

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ PRŮVODCE GB01-P03 MECHANIKA TUHÝCH TĚLES VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA STAVEBNÍ Prof. RNDr. Zdeněk Chobola,CSc., Vlasta Juránková,CSc. FYZIKA PRŮVODCE GB01-P03 MECHANIKA TUHÝCH TĚLES STUDIJNÍ OPORY PRO STUDIJNÍ PROGRAMY S KOMBINOVANOU

Více

Matematika I (KX001) Užití derivace v geometrii, ve fyzice 3. října f (x 0 ) (x x 0) Je-li f (x 0 ) = 0, tečna: x = 3, normála: y = 0

Matematika I (KX001) Užití derivace v geometrii, ve fyzice 3. října f (x 0 ) (x x 0) Je-li f (x 0 ) = 0, tečna: x = 3, normála: y = 0 Rovnice tečny a normály Geometrický význam derivace funkce f(x) v bodě x 0 : f (x 0 ) = k t k t je směrnice tečny v bodě [x 0, y 0 = f(x 0 )] Tečna je přímka t : y = k t x + q, tj y = f (x 0 ) x + q; pokud

Více

VZOROVÝ TEST PRO 3. ROČNÍK (3. A, 5. C)

VZOROVÝ TEST PRO 3. ROČNÍK (3. A, 5. C) VZOROVÝ TEST PRO 3. ROČNÍK (3. A, 5. C) max. 3 body 1 Zjistěte, zda vektor u je lineární kombinací vektorů a, b, je-li u = ( 8; 4; 3), a = ( 1; 2; 3), b = (2; 0; 1). Pokud ano, zapište tuto lineární kombinaci.

Více

11 Vzdálenost podprostorů

11 Vzdálenost podprostorů 11 Vzdálenost podprostorů 11.1 Vzdálenost bodů Eukleidovský bodový prostor E n = afinní bodový prostor, na jehož zaměření je definován skalární součin. (Pech:AGLÚ/str.126) Definováním skalárního součinu

Více

CVIČNÝ TEST 24. OBSAH I. Cvičný test 2. Mgr. Kateřina Nováková. II. Autorské řešení 6 III. Klíč 13 IV. Záznamový list 15

CVIČNÝ TEST 24. OBSAH I. Cvičný test 2. Mgr. Kateřina Nováková. II. Autorské řešení 6 III. Klíč 13 IV. Záznamový list 15 CVIČNÝ TEST 24 Mgr. Kateřina Nováková OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 13 IV. Záznamový list 15 I. CVIČNÝ TEST VÝCHOZÍ TEXT K ÚLOZE 1 Písemnou práci z chemie psalo všech 28 žáků ze

Více

PŘÍMKA A JEJÍ VYJÁDŘENÍ V ANALYTICKÉ GEOMETRII

PŘÍMKA A JEJÍ VYJÁDŘENÍ V ANALYTICKÉ GEOMETRII PŘÍMKA A JEJÍ VYJÁDŘENÍ V ANALYTICKÉ GEOMETRII V úvodu analytické geometrie jsme vysvětlili, že její hlavní snahou je popsat geometrické útvary (body, vektory, přímky, kružnice,...) pomocí čísel nebo proměnných.

Více

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

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 CVIČNÝ TEST 51 Mgr. Tomáš Kotler OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 I. CVIČNÝ TEST VÝCHOZÍ TEXT A OBRÁZEK K ÚLOZE 1 V obchodě s kouzelnickými potřebami v Kocourkově

Více

FAKULTA STAVEBNÍ VUT V BRNĚ PŘIJÍMACÍ ŘÍZENÍ PRO AKADEMICKÝ ROK

FAKULTA STAVEBNÍ VUT V BRNĚ PŘIJÍMACÍ ŘÍZENÍ PRO AKADEMICKÝ ROK FAKULTA STAVEBNÍ VUT V BRNĚ PŘIJÍMACÍ ŘÍZENÍ PRO AKADEMICKÝ ROK 00 007 TEST Z MATEMATIKY PRO PŘIJÍMACÍ ZKOUŠKY ČÍSLO FAST-M-00-0. tg x + cot gx a) sinx cos x b) sin x + cos x c) d) sin x e) +. sin x cos

Více

Zobrazování těles. problematika geometrického modelování. základní typy modelů. datové reprezentace modelů základní metody geometrického modelování

Zobrazování těles. problematika geometrického modelování. základní typy modelů. datové reprezentace modelů základní metody geometrického modelování problematika geometrického modelování manifold, Eulerova rovnost základní typy modelů hranový model stěnový model objemový model datové reprezentace modelů základní metody geometrického modelování těleso

Více

I N V E S T I C E D O R O Z V O J E V Z D Ě L Á V Á N Í

I N V E S T I C E D O R O Z V O J E V Z D Ě L Á V Á N Í DYNAMIKA SÍLA 1. Úvod dynamos (dynamis) = síla; dynamika vysvětluje, proč se objekty pohybují, vysvětluje změny pohybu. Nepopisuje pohyb, jak to dělá... síly mohou měnit pohybový stav těles nebo mohou

Více

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

CVIČNÝ TEST 13. OBSAH I. Cvičný test 2. Mgr. Zdeňka Strnadová. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 CVIČNÝ TEST 13 Mgr. Zdeňka Strnadová OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 I. CVIČNÝ TEST VÝCHOZÍ TEXT A OBRÁZEK K ÚLOZE 1 V trojúhelníku ABC na obrázku dělí úsečka

Více

Matematika I, část I. Rovnici (1) nazýváme vektorovou rovnicí roviny ABC. Rovina ABC prochází bodem A a říkáme, že má zaměření u, v. X=A+r.u+s.

Matematika I, část I. Rovnici (1) nazýváme vektorovou rovnicí roviny ABC. Rovina ABC prochází bodem A a říkáme, že má zaměření u, v. X=A+r.u+s. 3.4. Výklad Předpokládejme, že v prostoru E 3 jsou dány body A, B, C neležící na jedné přímce. Těmito body prochází jediná rovina, kterou označíme ABC. Určíme vektory u = B - A, v = C - A, které jsou zřejmě

Více

b) Maximální velikost zrychlení automobilu, nemají-li kola prokluzovat, je a = f g. Automobil se bude rozjíždět po dobu t = v 0 fg = mfgv 0

b) Maximální velikost zrychlení automobilu, nemají-li kola prokluzovat, je a = f g. Automobil se bude rozjíždět po dobu t = v 0 fg = mfgv 0 Řešení úloh. kola 58. ročníku fyzikální olympiády. Kategorie A Autoři úloh: J. Thomas, 5, 6, 7), J. Jírů 2,, 4).a) Napíšeme si pohybové rovnice, ze kterých vyjádříme dobu jízdy a zrychlení automobilu A:

Více

BIOMECHANIKA KINEMATIKA

BIOMECHANIKA KINEMATIKA BIOMECHANIKA KINEMATIKA MECHANIKA Mechanika je nejstarším oborem fyziky (z řeckého méchané stroj). Byla původně vědou, která se zabývala konstrukcí strojů a jejich činností. Mechanika studuje zákonitosti

Více

M - Příprava na 3. čtvrtletní písemnou práci

M - Příprava na 3. čtvrtletní písemnou práci M - Příprava na 3. čtvrtletní písemnou práci Určeno pro třídu ODK VARIACE 1 Tento dokument byl kompletně vytvořen, sestaven a vytištěn v programu dosystem - EduBase. Více informací o programu naleznete

Více

CVIČNÝ TEST 9 OBSAH. Mgr. Václav Zemek. I. Cvičný test 2 II. Autorské řešení 5 III. Klíč 17 IV. Záznamový list 19

CVIČNÝ TEST 9 OBSAH. Mgr. Václav Zemek. I. Cvičný test 2 II. Autorské řešení 5 III. Klíč 17 IV. Záznamový list 19 CVIČNÝ TEST 9 Mgr. Václav Zemek OBSAH I. Cvičný test 2 II. Autorské řešení 5 III. Klíč 17 IV. Záznamový list 19 I. CVIČNÝ TEST 1 Vypočítejte (7,5 10 3 2 10 2 ) 2. Výsledek zapište ve tvaru a 10 n, kde

Více

České vysoké učení technické v Praze Fakulta biomedicínského inženýrství

České vysoké učení technické v Praze Fakulta biomedicínského inženýrství České vysoké učení techncké v Praze Fakulta bomedcínského nženýrství Úloha KA03/č. 4: Měření knematky a dynamky pohybu končetn pomocí akcelerometru Ing. Patrk Kutílek, Ph.D., Ing. Adam Žžka (kutlek@fbm.cvut.cz,

Více