Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

1 Jádro polygonální oblasti 36VGE ZS 2007/2008 FEL ČVUT Roman Hocke.

Podobné prezentace


Prezentace na téma: "1 Jádro polygonální oblasti 36VGE ZS 2007/2008 FEL ČVUT Roman Hocke."— Transkript prezentace:

1 1 Jádro polygonální oblasti 36VGE ZS 2007/2008 FEL ČVUT Roman Hocke

2 2 Jádro polygonální oblasti Množina všech bodů, ze kterých jsou „vidět“ všechny ostatní body polygonu. Jádrem konvexního polygonu jsou všechny jeho body.

3 3 Jádro polygonální oblasti Jádro má konvexní tvar (existuje-li). Existuje pouze u konvexních nebo hvězdicových (star- shaped) polygonů.

4 4 Jádro polygonální oblasti Příklad polygonální oblasti, která nemá jádro.

5 5 Motivace Jádro je oblast, ze které lze „dohlédnout“ do všech míst v polygonální oblasti. Ideální poloha v místnosti pro bezpečnostní kamery, senzory... Místo pro vysílač, který má pokrýt signálem celou danou polygonální oblast (přímá viditelnost).

6 6 Průnik polorovin Jádro polygonální oblasti lze sestrojit jako průnik polorovin. V úvahu se berou poloroviny určené hranami polygonu.

7 7 Průnik polorovin

8 8

9 9

10 10 Průnik polorovin

11 11 Průnik polorovin Průnik polorovin je asociativní operace: (H1  H2)  H3 = H1  (H2  H3)‏ Lze použít metodu Rozděl a panuj.

12 12 Průnik polorovin Vstup: množina polorovin M Výstup: polygon vzniklý jako průnik polorovin z M pokud |M| = 1, vrať polorovinu z M pokud |M| > 1, pak  rozděl M na disj. Podmnožiny M1, M2  rekurzivně najdi polygony P1, P2 - průnik polorovin v M1, M2  vrať průnik P1  P2

13 13 Průnik polorovin Časová složitost metody Rozděl a panuj:  „strom“ rekurze má při n polorovinách hloubku log(n)‏  průnik 2 polygonů o j a k hranách má složitost (j+k)‏  v nejnižší úrovni „stromu“ probíhá průnik polygonů o nejmenším počtu hran  celková časová složitost je n.log(n)‏

14 14 Lee - Preparata systematičtější hledání průniku polorovin postupné „odřezávání“ nevhodných částí z budoucího jádra budoucí jádro udržujeme jako spojový seznam vrcholů a hran seřazený proti směru hod. ručiček (CCW)‏ rozdělíme vrcholy polygonu na:  konvexní – s vnitřním úhlem < 180°  reflexní – s vnitřním úhlem > 180°

15 15 Lee - Preparata Výchozí stav  vybereme reflexní vrchol V0  najdeme polopřímky z V0 opačnými směry, než příslušné hrany  tyto přímky určují výchozí podobu budoucího jádra – oblast K

16 16 Lee - Preparata body F a L inicializujeme v „nekonečnu“ tyto body představují levou a pravou hranici oblasti K při pohledu z aktuálního vrcholu polygonu poté postupně procházíme vrcholy polygonu upravujeme a ořezáváme oblast K na základě vlastností vrcholů a hran polygonu

17 17 Lee - Preparata 1. Vrchol je reflexní a bod F leží vlevo od polopřímky z dalšího vrcholu z bodu F hledáme CCW průsečík s polopřímkou nenajdeme-li, je K prázdné

18 18 Lee - Preparata hledáme druhý průsečík přímky s K (CW)‏ najdeme-li, posuneme do druhého průsečíku bod F „odřízneme“ příslušnou část K zjistíme, zda K zůstane neuzavřený (pokud jsme nenašli druhý průsečík)‏

19 19 Lee - Preparata 2. Vrchol je reflexní a bod F leží vpravo od polopřímky z dalšího vrcholu jádro K se nezmění upravíme bod F tak, aby to byl i nadále „krajní viditelný“ bod z následujícího vrcholu polygonu

20 20 Lee - Preparata procházíme K proti směru hod. ručiček, dokud je následující bod z K vlevo od polopřímky z vrcholu do F vrchol, ve kterém skončíme, je nový vrchol F

21 21 Lee - Preparata Obdobně též pro 3. a 4. případ - konvexní vrchol a bod L

22 22 Lee - Preparata

23 23 Lee - Preparata

24 24 Lee - Preparata Následuje konkrétní příklad na konkrétním polygonu

25 25 Lee - Preparata Jako počáteční vrchol jsme zvolili reflexní bod V0.

26 26 Lee - Preparata V1 – konvexní vrchol

27 27 Lee - Preparata L vpravo od pol. V1-V2, průsečík W1

28 28 Lee - Preparata Ořízli jsme K, zatím je stále otevřené.

29 29 Lee - Preparata V2 je reflexní vrchol.

30 30 Lee - Preparata Bod F leží vpravo od polopřímky.

31 31 Lee - Preparata Opět ořízneme K, navíc se přemístí bod F.

32 32 Lee - Preparata V3 je konvexní vrchol.

33 33 Lee - Preparata L vpravo od pol. V3-V4.

34 34 Lee - Preparata Průsečíky W1, W2.

35 35 Lee - Preparata K se uzavřel.

36 36 Lee - Preparata V4 je konvexní...

37 37 Lee - Preparata L vpravo od polopř.

38 38 Lee - Preparata Oříznutí, přesun bodu L.

39 39 Lee - Preparata Z jádra vidíme všechny body v polyg. oblasti.

40 40 Lee - Preparata Časová složitost algoritmu:  procházíme všechny vrcholy polygonu  body F a L „obejdeme“ jádro 1x  jádro nemá víc než n vrcholů  celková časová složitost je n Algoritmus je třeba doplnit testem, který ošetří případy vedoucí k časové složitosti n 2

41 41 Jádro polygonální oblasti Použité zdroje: http://service.felk.cvut.cz/courses/36VGE/prednasky/Pruniky.ppt.pdf http://en.wikipedia.org/wiki/Star-shaped_polygon http://www.cs.mcgill.ca/~ethan/cs507/convexify/applet.html Děkuji za pozornost.


Stáhnout ppt "1 Jádro polygonální oblasti 36VGE ZS 2007/2008 FEL ČVUT Roman Hocke."

Podobné prezentace


Reklamy Google