konvexné obaly

18
Konvexné Obaly

Upload: rafiki

Post on 14-Jan-2016

38 views

Category:

Documents


3 download

DESCRIPTION

Konvexné Obaly. Pojem konvexný obal. Najmenšia konvexná množina obsahujúca dané body S každou dvojicou bodov obsahuje aj úsečku ktorá ich spája Prienik všetkých polrovín obsahujúcich dané body Mnoho definícii ale ani jedna nie je konštrukčného charakteru ako konvexný obal zostrojiť. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Konvexné Obaly

Konvexné Obaly

Page 2: Konvexné Obaly

Pojem konvexný obal

Najmenšia konvexná množina obsahujúca dané body

S každou dvojicou bodov obsahuje aj úsečku ktorá ich spája

Prienik všetkých polrovín obsahujúcich dané body

Mnoho definícii ale ani jedna nie je konštrukčného charakteru ako konvexný obal zostrojiť

Page 3: Konvexné Obaly

Ukážka konvexného obalu

Page 4: Konvexné Obaly

Reálne využitie

Ray tracing, video hry... -> náhrada za bounding boxy pri testovaní kolízií

Pri počítaní kolízii na reálných objektoch ktoré vykresľujeme príliš veľa testovania

Vhodné nahradiť približnou aproximáciou ktorá to dobre popisuje a má podstatne menej vrcholov

Používanie bounding boxov pre jednoduchosť alebo konvex obalov ktoré sú “presnejšie”

Page 5: Konvexné Obaly

Boundig Box na kolizie

Page 6: Konvexné Obaly

Zložitosť vytvorenia obalu

Konvexný obal je daný ako usporiadaná množina vrcholov konvexného mnohouholníka.

Preto algoritmy na tvorbu konvexného obalu musia vrcholy nejak triediť.

Dolná časová zložitosť triedenia je O(N.logN) Preto aj algoritmy na konvex obaly majú

zložitosť prinajlepšom O(N.logN)

Page 7: Konvexné Obaly

Extremálne vrcholy

Konvexný obal množiny môžeme nájsť ako konvexný obal jeho extremálnych vrcholov

Extremálny vrchol p → neexistujú žiadne dva body a,b vstupnej množiny také, že p leží na otvorenej úsečke ab

Bod nie je extremálnym vrcholom ak leží v nejakom trojuholníku s vrcholmi ležiacimi v danej množine, ale sám nie je vrcholom takého trojuholníka

Page 8: Konvexné Obaly

Extremalne vrcholy

Page 9: Konvexné Obaly

Triviálny algoritmus

Zo vstupnej množiny budeme hľadať body ktoré nie sú extremálne a tie budeme vyhadzovať

Vstupná množina veľkosti S určuje S^3 takýchto trojuholníkov.

Opakovaním pre každý vrchol dostaneme čas S^4.

Vídíme teda že konvexný obal vieme vytvoriť v konečnom čase aj keď tento algoritmus nie je ideálny

Page 10: Konvexné Obaly

Graham Hull

Nájdeme vnútorný bod O – centroid bodov danej množiny (v čase O(N))

Pre každý vrchol si vypočítame polárny uhol voči O a dané body zotriedime podľa tohoto uhla (v čase O(N.logN))

Ak majú dva body rovnaký uhol tak ten bližší určite neleží na hranici – vynecháme. (O(N))

Ostala nám množina bodov ktoré môžu byť hraničné

Page 11: Konvexné Obaly

Graham Hull

Potom prechádzame trojice susedných bodov a ak je uhol reflexný (>= Pi) tak bod nemôže byť v obale – vyhodíme (konštantný čas pre uhol)

Opätovne opakujeme kým neprídeme k prvému bodu (O(N))

Dostali sme množinu bodov ktoré tvoria konvexný obal. Čas na vytvorenie obalu je O(N.logN)

Page 12: Konvexné Obaly

Graham Hull

Page 13: Konvexné Obaly

L-U Hull

Podobný princíp ako algoritmus Graham Hull Zo vstupnej množiny sa zvolí najľavejší L a

najpravejší R bod. Priamka LR potom rozdelí množinu na dve časti hornú a dolnú

Následne si dané časti usporiadame podľa x súradnice a postupujeme ako v algoritme Graham Hull

Ušetríme takto polárne súradnice ale princím ostáva podobný ako v predošlom algoritme

Page 14: Konvexné Obaly

L-U Hull

Page 15: Konvexné Obaly

Quick Hull

Na začiatku zvolíme najľavejší a najpravejší bod L,R a priamka LR rozdelí vstupnú množinu na dve časti S1, S2.

Z množiny S1 zvolíme bod H tak aby maximalizoval plochu trojuholníka HLR

Ak je takých bodov viac tak maximalizujeme uhol HLR

Body v trojuholníku HLR nepatria konvexnému obalu

Page 16: Konvexné Obaly

Quick Hull

Bod H patrí konvexnému obalu Množina SL – naľavo od priamky LH a množina

SR – napravo od priamky RH sú vstupom do ďalšej úrovne rekurzie

Konvexný obal získame ako zreťazenie konvexných obalov SL a SR

Page 17: Konvexné Obaly

Quick Hull

Page 18: Konvexné Obaly

Zdroje

http://www.tcs.fudan.edu.cn/rudolf/Courses/Algorithms/Alg_ss_07w/Webprojects/Chen_hull/applications.htm

http://people.ksp.sk/~misof/skola/Zlozitost%20geometrickych%20algoritmov%20(3ipg%204ipg)/02%20Konvexne%20obaly.pdf

http://www.dma.fi.upm.es/mabellanas/tfcs/fvd/voronoi.html

http://en.wikipedia.org/wiki/Convex_hull