Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Nalezení jádra polygonální oblasti Zpracoval: Šafránek David
2
36VGE - Výpočetní geometrie2 Slovník pojmů hranaedgee vrcholvertexv polorovinahalf-planeH polygonpolygon P jádrokernelK ve směru hod. ručičekclockwise protisměru hod. ručičekcounterclockwise Hvězdicovitý polygonstar-shaped, star polygon polygon s neprázdným jádrem
3
36VGE - Výpočetní geometrie3 Terminologie vrcholů v 0 konvexní, vypouklý (convex) vnitřní úhel < 180 v 1 konkávní, vydutý, introspektivní (reflex) vnitřní úhel > 180
4
36VGE - Výpočetní geometrie4 Problém máme polygon s N vrcholy v rovině, zkonstruujeme jeho jádro
5
36VGE - Výpočetní geometrie5 Definice množina bodů odkud jsou všechny body polygonu přímo viditelné, aniž by výhled křížila hrana
6
36VGE - Výpočetní geometrie6 Grafická ukázka definice
7
36VGE - Výpočetní geometrie7 Odborná definice Jádro je průnik N polorovin. Každá hrana polygonu P určuje polorovinu, ve které jádro musí ležet. Průnik vnitřních (levých - postupujeme-li proti směru hodinových ručiček) polorovin.
8
36VGE - Výpočetní geometrie8 Pozice bodu vůči orientované přímce vlevo nebo vpravo a, b, c určuje přímku x a y určuje bod řešíme rovnici w = a. x + b. y + c w=0: leží na přímce w < 0: leží v pravé polorovině w > 0: leží v levé polorovině při zvolení opačného normálového vektoru (a, b) se změní w znaménko
9
36VGE - Výpočetní geometrie9 Algoritmus Algoritmus v pořadí prochází vrcholy P a konstruuje konvexní polygony K i. Každý z těchto polygonů může i nemusí být ohraničený. Polygon K i+1 je tvořen průnikem H n n=0..i+1, a i=0..N-2 (N je počet vrcholů/hran počátečního polygonu). Takto zkonstruované K i je společný průnik polorovin ležících vlevo od hran P.
10
36VGE - Výpočetní geometrie10 Důsledky algoritmu Tento výsledek má zřejmé důsledky: 1) K N-1 =K(P) - aplikujeme na všechny hrany 2) K 1 nadmnožinou K 2 - K i+1 = K i "and" H i
11
36VGE - Výpočetní geometrie11 Základní algoritmus počítáme průnik poloroviny s polygonem výpočetně náročné
12
36VGE - Výpočetní geometrie12 Chytrý algoritmus zrychlení pomocí vrcholů F a L, při průniku s polorovinou vymezují jen část jádra, tudíž neprohledáváme celé dosud nalezené jádro
13
36VGE - Výpočetní geometrie13 Vstup polygon P - uspořádané vrcholy (hrany) e i následované v i
14
36VGE - Výpočetní geometrie14 Výstup když bude K(P) neprázdný, pak výstup bude také ve formě posloupnosti vrcholů (hran)
15
36VGE - Výpočetní geometrie15 Triviální případ N < 3: není polygon N = 3: jádro je totožné s polygonem
16
36VGE - Výpočetní geometrie16 Úvodní krok Nalezení konkávního vrcholu a vygenerování výchozího neuzavřeného jádra K 1. Není-li vrchol nalezen, pak polygon P je konvexní, jedná se o triviální případ - jádro je totožné s polygonem K(P)=P. Tudíž připustíme, že v 0 je konkávní vrchol. Určení F 1 jako bod v nekonečnu na přímce e 1 ve směru v 0 a L 1 obdobně na přímce e 0 ve směru v 0.
17
36VGE - Výpočetní geometrie17 Grafická zobrazení prvního kroku
18
36VGE - Výpočetní geometrie18 Hlavní krok máme-li K i, pak zhotovíme K i+1 tak, že vezmeme další vrchol v pořadí (v i ) a spočteme K i+1 dále upravíme F i a L i tak, že spojnice s aktuálním bodem v i polygonu neprotíná žádné jeho hrany detailní popis algoritmu obsahuje značné větvení (konvexní | konkávní vrchol, F (L) leží vpravo | vlevo)
19
36VGE - Výpočetní geometrie19 Podmínka pro F a L
20
36VGE - Výpočetní geometrie20 1.1 Konkávní vrchol, F leží vpravo od od e i+1 v i+1
21
36VGE - Výpočetní geometrie21 procházíme K proti směru hodinových ručiček od F dokud nenalezneme průsečík (w 1 ) s e i+1 v i+1, dojdeme-li až k L, pal je K(P)=Ø
22
36VGE - Výpočetní geometrie22 procházíme K po směru hodinových ručiček od F dokud nenalezneme průsečík (w 2 ) s e i+1 v i+1, ořízneme K podle hrany w 1 w 2
23
36VGE - Výpočetní geometrie23 F: je na konci hrany w 1 w 2
24
36VGE - Výpočetní geometrie24 L: procházíme K proti směru hodinových ručiček od L dokud nenajdeme vrchol w, takový, že následující vrchol leží vpravo od v i+1 (v i+1 w), pak L i+1 =w jinak zůstává
25
36VGE - Výpočetní geometrie25 1.2 Konkávní vrchol, F leží vlevo od od e i+1 v i+1
26
36VGE - Výpočetní geometrie26 K zůstává stejné. F: procházíme K protisměru hodinových ručiček od F dokud nenajdeme vrchol w, takový, že následující vrchol leží vpravo od v i+1 (v i+1 w), pak F i+1 =w jinak zůstává
27
36VGE - Výpočetní geometrie27 L: stejně jako v případě 1.1 1.1: procházíme K proti směru hodinových ručiček od L dokud nenajdeme vrchol w, takový, že následující vrchol leží vpravo od v i+1 (v i+1 w), pak L i+1 =w jinak zůstává
28
36VGE - Výpočetní geometrie28 2.1 L leží na nebo vpravo od e i+1 v i+1
29
36VGE - Výpočetní geometrie29 procházíme K po směru hodinových ručiček od L dokud nenalezneme průsečík (w 1 ) s e i+1 v i+1, dojdeme-li až k L je K(P)=Ø
30
36VGE - Výpočetní geometrie30 procházíme K proti směru hodinových ručiček od L dokud nenalezneme průsečík (w 2 ) s v i e i+1. Provedeme oříznutí hranou w 1 w 2
31
36VGE - Výpočetní geometrie31 2.2 L leží vlevo od e i+1 v i+1
32
36VGE - Výpočetní geometrie32 K zůstává stejné. F: stejně jako v případě 1.2 1.2 procházíme K protisměru hodinových ručiček od F dokud nenajdeme vrchol w, takový, že následující vrchol leží vpravo od v i+1 (v i+1 w), pak F i+1 =w jinak zůstává
33
36VGE - Výpočetní geometrie33 L: je-li K ohraničené tak jako 1.1 jinak zůstává 1.1: procházíme K proti směru hodinových ručiček od L dokud nenajdeme vrchol w, takový, že následující vrchol leží vpravo od v i+1 (v i+1 w), pak L i+1 =w jinak zůstává
34
36VGE - Výpočetní geometrie34 Složitost paměťová složitost O(n) jádro polygonální oblasti může být zkonstruováno v optimálním čase O(n) nejhorší složitost nastane pro následující instanci - polygon bez jádra, kde má daný algoritmus časovou složitost O(N 2 )
35
36VGE - Výpočetní geometrie35 Nejhorší případ
36
36VGE - Výpočetní geometrie36 Řešení ukončit algoritmus jakmile obteče v úhlu větším než 3π kterýkoliv bod částečného jádra K
37
36VGE - Výpočetní geometrie37 Applet http://web.informatik.uni- bonn.de/I/GeomLab/VisPolygon/index.html.en
38
36VGE - Výpočetní geometrie38 Použití zjištění, zda je polygon hvězdicovitý umístění všesměrového vysílače
39
36VGE - Výpočetní geometrie39 Další algoritmy Competitive strategy (Závodní strategie) nalezení bodu jádra polygonální oblasti - maximálně 5.333x delší než nejkratší cesta, předpokládá rozhled 360° - využití v robotice
40
36VGE - Výpočetní geometrie40 Zobecnění do více prostorů při přechodu do trojrozměrného prostoru je třeba přímky nahradit rovinami, a najít uspořádání všech trojúhelníků (tesselace) v objektu
41
36VGE - Výpočetní geometrie41 Kde získat další informace Franco P. Preparata: Computational Geometry http://www.pi6.fernuni-hagen.de/publ/tr211.pdf
42
36VGE - Výpočetní geometrie42 Dotazy
43
36VGE - Výpočetní geometrie43 Děkuji za pozornost
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.