Výpočetní geometrie. Pavel Strachota. 9. listopadu FJFI ČVUT v Praze

Podobné dokumenty
Voronoiův diagram. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta

Vzorce počítačové grafiky

Geometrické vyhledávání

Triangulace. Význam triangulace. trojúhelník je základní grafický element aproximace ploch předzpracování pro jiné algoritmy. příklad triangulace

Výpočetní geometrie Computational Geometry

Voroného konstrukce na mapě světa

Triangulace. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta.

11. VEKTOROVÁ ALGEBRA A ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ

Konvexní obal a množina

Algoritmizace prostorových úloh

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

Počítačová geometrie I

Projekt OPVK - CZ.1.07/1.1.00/ Matematika pro všechny. Univerzita Palackého v Olomouci

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

6. Základy výpočetní geometrie

Úvod do mobilní robotiky AIL028

Konvexní obálka množiny bodů.

Geometrické vyhledání.

11. VEKTOROVÁ ALGEBRA A ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ. u. v = u v + u v. Umět ho aplikovat při

1. Vektorové algoritmy jejich výstupem je soubor geometrických prvků, např.

Modelování pevných těles

2. Vyšetřete všechny možné případy vzájemné polohy tří různých přímek ležících v jedné rovině.

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

MATURITNÍ TÉMATA Z MATEMATIKY

64. ročník matematické olympiády Řešení úloh krajského kola kategorie A

Vyplňování souvislé oblasti

GIS Geografické informační systémy

Algoritmy výpočetní geometrie

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

INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA

Geometrické transformace pomocí matic

Jana Dannhoferová Ústav informatiky, PEF MZLU

11 Vzdálenost podprostorů

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

Algoritmy a datové struktury

k-dimenzionálním prostoru. problém: Zkonstruovat strom, který rozděluje prostor polorovinami

Mgr. Ladislav Zemánek Maturitní okruhy Matematika Obor reálných čísel

Úlohy krajského kola kategorie A

Geometrické algoritmy pro počítačovou grafiku

Analytická geometrie lineárních útvarů

0. Pak existuje n tak, že Bµ APn

19 Eukleidovský bodový prostor

Řešení geometrické úlohy spočívá v nalezení geometrického útvaru (útvarů) daných vlastností.

Úvod do mobilní robotiky AIL028

Datové struktury pro prostorové vyhledávání

GIS Geografické informační systémy

Maturitní otázky z předmětu MATEMATIKA

Semestrální práce z předmětu KMA/MM. Voroneho diagramy

Úvod do výpočetní geometrie. Základní vztahy.

P L A N I M E T R I E

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

Minkowského operace. Použití. Světlana Tomiczková. Rozmisťování Robot Motion Planning Offset Optics. Pojmy:

ICT podporuje moderní způsoby výuky CZ.1.07/1.5.00/ Matematika analytická geometrie. Mgr. Pavel Liška

3. ÚVOD DO ANALYTICKÉ GEOMETRIE 3.1. ANALYTICKÁ GEOMETRIE PŘÍMKY

Konvexní obálka v E 3 a dělení prostoru

Urci parametricke vyjadreni primky zadane body A[2;1] B[3;3] Urci, zda bod P [-3;5] lezi na primce AB, kde A[1;1] B[5;-3]

Detekce kolizí v 3D Josef Pelikán KSVI MFF UK Praha

Užití stejnolehlosti v konstrukčních úlohách

Stromy, haldy, prioritní fronty

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 6

Algoritmy pro ořezávání 2D polygonů

Minkowského operace a jejich aplikace

Programování 3. hodina. RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015

Datové struktury. Zuzana Majdišová

Gymnázium Jiřího Ortena, Kutná Hora. Průřezová témata Poznámky. Téma Školní výstupy Učivo (pojmy) volné rovnoběžné promítání průmětna

AB = 3 CB B A = 3 (B C) C = 1 (4B A) C = 4; k ]

6. ANALYTICKÁ GEOMETRIE

Maturitní okruhy z matematiky - školní rok 2007/2008

MATEMATIKA Maturitní témata společná část MZ základní úroveň (vychází z Katalogu požadavků MŠMT)

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

Stromové struktury v relační databázi

Modely prostorových těles

1. jarní série Termín odeslání: 4. února 2019

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

7 Konvexní množiny. min c T x. při splnění tzv. podmínek přípustnosti, tj. x = vyhovuje podmínkám: A x = b a x i 0 pro každé i n.

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

Tutoriál programu ADINA

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

Rovnice přímky v prostoru

Počítačová grafika 1 (POGR 1)

Systematizace a prohloubení učiva matematiky. Učebna s dataprojektorem, PC, grafický program, tabulkový procesor. Gymnázium Jiřího Ortena, Kutná Hora

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

2. ANALYTICKÁ GEOMETRIE V PROSTORU Vektory Úlohy k samostatnému řešení... 21

Základní datové struktury III: Stromy, haldy

Příklady k analytické geometrii kružnice a vzájemná poloha kružnice a přímky

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky DIPLOMOVÁ PRÁCE

Matematika I 12a Euklidovská geometrie

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

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

Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008

ZŠ ÚnO, Bratří Čapků 1332

1 Analytická geometrie

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

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

PLANIMETRIE úvodní pojmy

Maturitní témata profilová část

Mgr. Markéta Trnečková, Ph.D. Palacký University, Olomouc

VE 2D A 3D. Radek Výrut. Abstrakt Tento článek obsahuje postupy pro výpočet Minkowského sumy dvou množin v rovině a pro výpočet Minkowského sumy

Gymnázium Česká a Olympijských nadějí, České Budějovice, Česká 64, 37021

Geoinformatika. IX GIS modelování

Transkript:

Výpočetní geometrie Pavel Strachota FJFI ČVUT v Praze 9. listopadu 2012

Obsah 1 Úvod 2 Jednoduché algoritmy výpočetní geometrie 3 Další problémy výpočetní geometrie

Obsah 1 Úvod 2 Jednoduché algoritmy výpočetní geometrie 3 Další problémy výpočetní geometrie

Problémy výpočetní geometrie problémy z oboru teoretické matematiky, numerické matematiky, počítačové grafiky, robotiky, kartografie... poloha bodu vůči polygonu, mnohostěnu (polyhedron) poloha bodu na mapě (vzhledem k rozdělení roviny) průsečíky úseček, průniky polygonů triangulace polygonu nalezení konvexního obalu ve 2D, 3D - jeden z nejstarších problémů Voroného diagramy Deloneho triangulace hledání nejkratší cesty detekce kolizí v simulacích, počítačových hrách atd. generování výpočetních sítí pro metodu konečných prvků, resp. objemů

Řešení problémů výpočetní geometrie datové struktury BSP stromy - Binary Space Partitioning tree quadtree, octree složitost algoritmů časová pamět ová snaha vyvinout co nejefektivnější algoritmy rozděl a panuj znáhodněné algoritmy robustní algoritmy - odolné vůči speciálním degenerovaným případům problémům při implementaci v aritmetice s konečnou přesností

Obsah 1 Úvod 2 Jednoduché algoritmy výpočetní geometrie 3 Další problémy výpočetní geometrie

Poloha bodu vůči polygonu určit, zda určitý bod P leží uvnitř nebo vně daného polygonu v rovině např. u trojúhelníku: vrcholy V i, i = 0,1,2 proti směru hodinových ručiček hrany e i = ( e x,e y ) T i i = V(i+1) mod 3 V i, i = 0,1,2 vnější normály ke hranám jsou pak ) T n i = ( e y, e x i i P leží uvnitř, jestliže i = 0,1,2 n i (P V i ) < 0 V 1 n 0 n 1 V 0 n 2 V 2

Poloha bodu vůči polygonu BSP stromy BSP = Binary Space Partitioning - binární rozdělení prostoru rekurzivní dělení roviny na poloroviny oddělené libovolně umístěnou a orientovanou přímkou reprezentace libovolných polygonálních útvarů v rovině, resp. mnohostěnů v prostoru uzel BSP stromu - svázán s přímkou, jejíž normála směřuje ven z objektu (úmluva) 2 potomci: levý potomek = rozdělení poloroviny proti směru normály k přímce, nebo NULL (lze implementovat jako list in - identifikuje polorovinu, která leží uvnitř útvaru) pravý potomek = rozdělení poloroviny ve směru normály k přímce, nebo NULL (lze implementovat jako list out - identifikuje polorovinu, která leží vně útvaru)

Poloha bodu vůči polygonu BSP stromy - příklad

Poloha bodu vůči polygonu Vyšetření pomocí BSP stromu začínáme v kořeni stromu přímka p daná bodem X a normálovým vektorem n test, v jaké polorovině leží bod P: n (P X) < 0 = P leží v polorovině proti směru normály = vyšetřujeme levý podstrom n (P X) > 0 = P leží v polorovině po směru normály = vyšetřujeme pravý podstrom pokud přejdeme do oblasti in (tj. při přesunu vlevo narazíme na NULL), bod P leží v polygonu pokud přejdeme do oblasti out (tj. při přesunu vpravo narazíme na NULL), bod P leží mimo polygon

Poloha bodu v rovině Vyšetření pomocí BSP stromu prostor rozdělen na oblasti (státy na mapě apod.) zobecnění - přímka dělí prostor na levou a pravou polorovinu (poloroviny + a ) v listech stromu je místo in a out označení oblasti C i procházení stromem nám řekne, v jaké oblasti leží bod P

Poloha bodu v rovině Obecný případ oblasti omezeny k sobě přiléhajícími polygony algoritmus pro vytvoření mapy lichoběžníků vytvoří datovou strukturu (opět strom), v níž lze následně snadno vyhledávat pozici bodu [deberg, kap. 6]

Booleovské operace s polygony průnik, sjednocení, rozdíl, negace snadno implementovatelné pomocí BSP stromů

Booleovské operace s polygony průnik, sjednocení, rozdíl, negace snadno implementovatelné pomocí BSP stromů

Booleovské operace s polygony průnik, sjednocení, rozdíl, negace snadno implementovatelné pomocí BSP stromů

Booleovské operace s polygony průnik, sjednocení, rozdíl, negace snadno implementovatelné pomocí BSP stromů

negace průnik Booleovské operace s polygony Implementace pomocí BSP polygon - seznam orientovaných hran orientace určuje směr normály - BSP reprezentace snadná negovaný polygon - seznam stejných hran orientovaných opačně = normály směřují na druhou stranu ořezávání polygonu polygonem - viz přednáška rastrové algoritmy polygony A, B s m, resp. n hranami princip: A B = průnik hran A s polygonem B + průnik hran B s polygonem A = celkem mn testů BSP reprezentace = omezení počtu testů

Booleovské operace s polygony Implementace pomocí BSP

Booleovské operace s polygony Implementace ostatních operací sjednocení A B = ( A B) rozdíl A B = A B B A = B A

Obecná definice Nalezení konvexního obalu Konvexní obal (convex envelope, convex hull) množiny A je nejmenší konvexní množina obsahující A. konvexní obal množiny bodů A = {p 1,p 2,...p n }: n n CH (A) = α k p k α k 0, α k = 1 algoritmy pro nalezení konvexního obalu k=1 balení dárku quickhull inkrementální algoritmus Grahamův algoritmus algoritmus typu rozděl a panuj k=1

Nalezení konvexního obalu Hledání vrcholů konvexního obalu hranice konvexního obalu množiny bodů A v rovině je konvexní polygon CP(A) výsledek nalezení konvexního obalu - posloupnost vrcholů tohoto polygonu (po směru hodinových ručiček) A = {p 1,p 2,...,p 9 } CP(A) = (p 4,p 5,p 8,p 2,p 9 )

Nalezení konvexního obalu Hledání vrcholů konvexního obalu hranice konvexního obalu množiny bodů A v rovině je konvexní polygon CP(A) výsledek nalezení konvexního obalu - posloupnost vrcholů tohoto polygonu (po směru hodinových ručiček) Pozorování Bod p A je vrcholem CP(A) p neleží uvnitř žádného trojúhelníku tvořeného jinými třemi body z A. primitivní hledání vrcholů CP(A): pro každý bod p A bod sestroj všechny trojúhelníky qrs (q,r,s A, p q r s). zařad p do CP(A) pokud vždy p interior( qrs) = časová složitost O ( n 4) - nepoužitelné

Pozorování Nalezení konvexního obalu Hledání hran konvexního obalu Úsečka pq, p,q A je hranou CP(A) všechny body r A leží na jedné straně přímky pq

Pozorování Nalezení konvexního obalu Hledání hran konvexního obalu Úsečka pq, p,q A je hranou CP(A) všechny body r A leží na jedné straně přímky pq primitivní hledání hran CP(A): pro každou přímku pq a každý bod r A,r p,q najdi polohu r vůči pq opět na základě znaménka skalárního součinu (r p) s normálovým vektorem přímky hranu pq zařad do CP(A), pokud je znaménko skal. součinu r stejné seřad vrcholy po směru hodinových ručiček = časová složitost O ( n 3)

Nalezení konvexního obalu Problémy při hledání hran konvexního obalu 1/2 takto navržený algoritmus není robustní: degenerované případy: bod r přímo nebo téměř na úsečce pq r přímo na pq = správně by neměl hrát roli v rozhodování o této hraně

Nalezení konvexního obalu Problémy při hledání hran konvexního obalu 2/2 projeví se konečná přesnost např. může zdánlivě být zároveň r vpravo od pq (při cestě z p do q máme bod r po pravé straně), q vpravo od pr, p vpravo od rq geometricky nelze, pouze efekt numerických chyb = všechny 3 hrany se zařadí do CP(A) nebo naopak: všechny body vlevo = žádná z hran do CP(A) = CP(A) nepopisuje uzavřený polygon

Nalezení konvexního obalu Inkrementální algoritmus procházíme body z A podle souřadnice x (zleva doprava) bod s minimální souřadnicí x určitě patří do CP(A) tvoříme horní část konvexního obalu (upper hull) - CP u (A) CP u (A) se tvoří postupně - v i-tém kroku máme CP u ({p 0,p 1,...p i }) horní část skutečného konvexního obalu vždy tvoří tzv. pravý záhyb (right turn), tj. při cestě od p i k p i+1 zahýbáme doprava

Nalezení konvexního obalu Inkrementální algoritmus - pravý záhyb iterace od CP u ({p 0,p 1,...p i }) k CP u ( { p 0,p 1,...,p i+1 } ) 1 M := CP u ({p 0,p 1,...p i }) 2 přidáme bod p i+1 do M 3 pokud v M jsou max. 2 body = M je CP u ( { p 0,p 1,...p i+1 } ) 4 zjistíme, zda poslední 3 body v M tvoří pravý záhyb pokud ANO, M už je CP u ( { p 0,p 1,...p i+1 } ) pokud NE (tvoří levý záhyb), odstraníme prostřední bod a jdeme na bod 3.

tři body na jedné úsečce netvoří ani pravý, ani levý záhyb, ale prostřední bod v CP u (A) nepotřebujeme = test NEtvoří pravý záhyb = tvoří levý záhyb nebo jsou na přímce Nalezení konvexního obalu Inkrementální algoritmus - detaily neuvažovali jsme více bodů se stejnou souř. x = místo uspořádání podle x lze vzít lexikografické uspořádání ( podle ) ( x, y ) x1 x2 > (x 1 > x 2 (x 1 = x 2 y 1 > y 2 )) y 1 y 2

tři body na jedné úsečce netvoří ani pravý, ani levý záhyb, ale prostřední bod v CP u (A) nepotřebujeme = test NEtvoří pravý záhyb = tvoří levý záhyb nebo jsou na přímce Nalezení konvexního obalu Inkrementální algoritmus - detaily neuvažovali jsme více bodů se stejnou souř. x = místo uspořádání podle x lze vzít lexikografické uspořádání ( podle ) ( x, y ) x1 x2 > (x 1 > x 2 (x 1 = x 2 y 1 > y 2 )) y 1 y 2

Nalezení konvexního obalu Inkrementální algoritmus - dokončení analogicky nalezneme dolní část konvexního obalu CP l (A) postupujeme stejně, ale zprava doleva odstraníme první a poslední bod z CP l (A), nebot již jsou v CP u (A) chyby způsobené numerickou nepřesností: nějaký bod navíc, resp. nějaký chybí stále máme seznam uzlů, který lze interpretovat jako uzavřený polygon odchylka od skutečného CH (A) je stejného řádu jako numerické chyby = algoritmus je robustní časová složitost je O (n logn) seřazení bodů lze provést v O (n logn) samotné nalezení CP u (A) a CP l (A) trvá jen O (n): každý bod totiž přidáme i testujeme na odebrání právě jednou

Nalezení konvexního obalu Algoritmus balení dárku začneme od bodu p 0 s maximální souřadnicí x rotujeme vertikální přímku procházející p 0 po směru hodinových ručiček, dokud nenarazíme na další bod p 1 přepneme se do bodu p 1 a pokračujeme v rotování přímky skončíme, když narazíme opět na p 0 složitost je O (nh), kde h je počet vrcholů CP(A) rotování přímky totiž spočívá v otestování všech zbývajících bodů z A a výběru toho s minimálním úhlem rotace

Nalezení konvexního obalu Algoritmus Quickhull 1/4 1 nalezneme extrémní body na ose x (a nejvíce vlevo, b nejvíce vpravo) = a,b CP(A) 2 nalezneme body c,d nejdále od přímky ab, resp. ba nalevo = c,d CP(A) 3 odstraníme množinu S 0 všech bodů uvnitř abc (resp. abd) 4 algoritmus rekurzivně aplikujeme na přímku ac a množinu S 1 všech bodů nalevo od ac přímku cb a množinu S 2 bodů nalevo od cb

Nalezení konvexního obalu Algoritmus Quickhull 2/4 S 1 c a S 0 S 2 d b

Nalezení konvexního obalu Algoritmus Quickhull 3/4 pseudokód: function QuickHull(point a, point b, set S) { if(s = ) return ; find point c farthest from line ab to the left; assemble sets S 0,S 1,S 2 ; return QuickHull(a,c,S 1 ) {c} QuickHull(c,b,S 2 ) } function QuickHull_Main(set A) { find initial extreme points a, b; return {a} QuickHull(a,b,A) {b} QuickHull(b,a,A); }

Nalezení konvexního obalu Algoritmus Quickhull 4/4 složitost algoritmu: v nejhorším případě O (nh), kde h je počet vrcholů CP(A) trojúhelníků se konstruuje h 2, na polohu bodu vůči trojúhelníku testujeme max. n bodů nastane tehdy, když většina bodů je již na hranici konvexního obalu žádné body nezahazujeme v typickém případě O (h logn) při konstrukci každého zahodíme do množiny S 0 přibližně polovinu bodů nastane, když body jsou v rovině rozmístěny rovnoměrně

Triangulace polygonu Pozorování Každý jednoduchý polygon o n vrcholech má triangulaci. Každá jeho triangulace se skládá z n 2 trojúhelníků.

Triangulace polygonu Ořezávání rohů ear clipping - nejjednodušší algoritmus, složitost O ( n 2) polygon P = (v 0,v 1,,...,v n 1 ) ; v n = v 0 procházíme vrcholy v i,v i+1,v i+2 (modulo n) jestliže úsečka v i v i+2 neprotíná žádnou hranu polygonu, tak vrchol v i+1 tvoří roh navíc v i v i+2 musí procházet vnitřkem v i+1 leží napravo od v i v i+2 (při procházení proti směru hodinových ručiček) vrchol v i+1 odstraníme z polygonu, vytvoříme v i v i+1 v i+2

Obsah 1 Úvod 2 Jednoduché algoritmy výpočetní geometrie 3 Další problémy výpočetní geometrie

Voronoi diagrams (Gregorij Voronoj) množina n bodů p 1,...p n v rovině rozdělení roviny do n oblastí Ω 1,...,Ω n x Ω i platí x p i = min j=1,...,n Voroného diagramy x p j tj. Ω i je množina bodů, které mají nejblíže k p i (v euklidovské normě) např. rozdělení oblastí pro zásobování z různých skladů apod.

Voronoi diagrams (Gregorij Voronoj) množina n bodů p 1,...p n v rovině rozdělení roviny do n oblastí Ω 1,...,Ω n x Ω i platí x p i = min j=1,...,n Voroného diagramy x p j tj. Ω i je množina bodů, které mají nejblíže k p i (v euklidovské normě) např. rozdělení oblastí pro zásobování z různých skladů apod.

Voronoi diagrams (Gregorij Voronoj) množina n bodů p 1,...p n v rovině rozdělení roviny do n oblastí Ω 1,...,Ω n x Ω i platí x p i = min j=1,...,n Voroného diagramy x p j tj. Ω i je množina bodů, které mají nejblíže k p i (v euklidovské normě) např. rozdělení oblastí pro zásobování z různých skladů apod.

Deloneho triangulace Motivace Terén

Deloneho triangulace Motivace Výšková mapa na trojúhelníkové síti

Deloneho triangulace Motivace Interpolace výšky ze vzorků na síti v závislosti na triangulaci uprostřed je pohoří - proč je případ a) mnohem realističtější?

Deloneho triangulace Motivace Výšková mapa - Voroného diagram interpolace výšky obecného bodu bude nejpřesnější, pokud použijeme co nejbližší vzorky

Delaunay triangulation (Boris Delone, původně po otci de Launay) triangulace konvexního obalu bodů v rovině, kde v kruhu opsaném libovolnému trojúhelníku neleží další bod maximalizuje minimální úhel v celé síti spojnice středů kruhů vymezují hranice ve Voroného diagramu Deloneho triangulace

Delaunay triangulation (Boris Delone, původně po otci de Launay) triangulace konvexního obalu bodů v rovině, kde v kruhu opsaném libovolnému trojúhelníku neleží další bod maximalizuje minimální úhel v celé síti spojnice středů kruhů vymezují hranice ve Voroného diagramu Deloneho triangulace

Deloneho triangulace Delaunay triangulation (Boris Delone, původně po otci de Launay) triangulace konvexního obalu bodů v rovině, kde v kruhu opsaném libovolnému trojúhelníku neleží další bod maximalizuje minimální úhel v celé síti spojnice středů kruhů vymezují hranice ve Voroného diagramu Deloneho triangulace 100 bodů v rovině

Generování sítě pro numerické řešení PDE numerické řešení úloh pro parciální diferenciální rovnice (PDE, Partial Differential Equations) mechanika a dynamika kontinua (simulace deformací a namáhání pevných těles, proudění tekutin,...) metoda konečných prvků (FEM, Finite Element Method) metoda konečných objemů (FVM, Finite Volume Method) potřeba pokrýt výpočetní oblast Ω sítí polygonů (computational mesh, grid) oblast Ω podmnožina roviny, resp. povrch objektu ve 3D = zpravidla trojúhelníky, čtyřúhelníky podmnožina prostoru = kvádry, čtyřstěny atd.

Generování sítě pro numerické řešení PDE Typy sítě strukturovaná (structured, uniform) jednoduchý tvar oblasti pravidelná mřížka vrcholů souřadnice vrcholů dány jednoduchým vztahem nestrukturovaná (unstructured, non-uniform) obecná sít vrcholů souřadnice vrcholů uloženy v paměti nebo stromové struktuře (viz dále)

Generování sítě pro numerické řešení PDE Typy sítě strukturovaná sít nestrukturovaná sít stejné rozlišení ( jemnost sítě ) nemusí být potřeba všude

Generování sítě pro numerické řešení PDE Nestrukturované sítě metody založené na Deloneho triangulaci nebo na datových strukturách quadtree ve 2D, resp. octree ve 3D adaptivní zjemňování (refinement), resp. zhrubování (coarsening) sít je jemnější v geometricky složitých partiích v místech, kde má řešení složitý průběh = změna sítě za běhu výpočtu umožňuje ušetřit pamět a čas tam, kde není potřeba velká přesnost (viz předchozí obrázek)

Generování sítě pro numerické řešení PDE Nestrukturované sítě založené na quadtree 4 potomci uzlu určují rozdělení 4 kvadrantů oblasti v listech stromu, tj., jsou hodnoty veličin (proměnných)

Generování sítě pro numerické řešení PDE Příklady sítí

Generování sítě pro numerické řešení PDE Příklady sítí

Generování sítě pro numerické řešení PDE Příklady sítí

Generování sítě pro numerické řešení PDE Příklady sítí

Literatura M. de Berg, O. Cheong, M. van Kreveld, M. Overmars: Computational Geometry - Algorithms and Applications, 3rd. ed, Springer-Verlag, Berlin Heidelberg 2008. P. J. Schneider, D. H. Eberly: Geometric Tools for Computer Graphics, Elsevier Science, 2003.