1 / 18

Konvexné Obaly

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ť.

rafiki
Télécharger la présentation

Konvexné Obaly

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Konvexné Obaly

  2. 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ť

  3. Ukážka konvexného obalu

  4. 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”

  5. Boundig Box na kolizie

  6. 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)

  7. 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

  8. Extremalne vrcholy

  9. 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

  10. 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é

  11. 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)

  12. Graham Hull

  13. 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

  14. L-U Hull

  15. 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

  16. 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

  17. Quick Hull

  18. 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

More Related