A VORONOI DIAGRAM dokumentációja 1. Bevezető helyett
Dolgozatunkban első részében rövid elméleti
bemutató található a Voronoi diagramról , a Delaunay háromszögről és ezek
kapcsolatáról. Majd pár sorban a történelmi áttekintés következik. Ezután
az általunk használt Fortune algoritmus általános leírása található, Legyen egy ponthalmaz a síkban. Természetesen
sokféleképpen megszerkeszthető a pontok által alkotott háromszögháló,
de ahhoz , hogy a Delaunay kritériumnak is megfeleljen a pontokat úgy
kell összekötnünk , hogy az így kialakult háromszögháló 1.1.ábra Ponthalmaz a síkban 1.2.ábra Delaunay háromszögek A Delauney háromszög egyik alapvető jellemzője, hogy a háromszög köré írt kör nem tartalmaz más ponthalmazbeli pontot. mint saját csúcsai.
Egy síkbeli ponthalmaz Voronoi diagramja
a sík poligonális területekre való felosztása, 2.1.ábra Voronoi diagram 4. A Delaunay háromszög és a Voronoi diagram közti kapcsolat A Voronoi diagram valójában a Delauney
háromszögelés geometriai duálisa, azaz egyikből a másik megkapható. A
módszer az, hogy a Delaunay éleinek középpontján
3.2. ábra Delaunay háromszög Voronoi diagrammá alakítása A Vorinoi diagram az algoritmikus geometria
egyik klasszikus problémája. Az eredete 1850- re nyúlik vissza és Dirichlettől
származik. A konkrét matematikai leírást azonban Voronoi fogalmazta meg
1908 - ban. Napjainkban Voronoi diagram sok gyakorlati
alkalmazása ismert. Számos geometriai 6. A Fortune algoritmus elméleti leírása Fortune algoritmusában egy a számítógépes
grafikában és az algoritmikus geometriában gyakran használt módszert alkalmazott,
ú.n. seprő egyenest. Az algoritmus alapötlete nagyon egyszerű, időbonyolultsága
legrosszabb esetben O(n log2 n) ahol n a bemeneti pontok száma.
Az ábrából látható, hogy a parabolikus
görbe topológiai szerkezete a seprő egyenes xy síkon való mozgásával változik.
Felvetődik egy fontos kérdés : mikor és hogyan változik "?Pont esemény" az amikor
a görbén egy új parabola ív jelenik meg. Ez akkor következik be amikor
a seprő egyenes egy P-beli pi pontot talál. Ekkor a PI sík először érinti
a pi által Ez akkor valósul meg, amikor egy parabolaív
egy ponttá húzódik össze és eltűnik a görbéből. Legyen ßj egy ilyen
ív és ßi illetve ßk két szomszédos íve mielőtt a ßj
eltűnne. 7. A tulajdonképpeni algoritmus A fentiekben ismertettük a Fortune módszer alapvető elemeit, most írjunk egy pár szót a befejezési feltételről. Mikor az összes pont a seprő egyenes mögött van és minden eseményt lekezeltünk, még nincs vége Voronoi diagram kirajzolásának. Meg kell rajzolnunk a félegyeneseket is. Mivel ez a számítógép képernyőjén nem megvalósítható, a diagramot egy téglalappal vettük körül amely széleinél a félegyenesek véget érnek. A következő algoritmus a Fortune módszer magja. VORONOI_DIAGRAM(P) 8. Adatstrukturák a Fortune algoritmusban A Fortune módszer a legnépszerűbb megoldás
a Voronoi diagram megépítésére . 9. A Voronoi diagram adastrukturája
ábra A Voronoi diagram adastrukturája Készítsük el a Voronoi diagramot miután az összes pontot feldolgoztuk. A félegyenesek és a diagramot határoló téglalap metszetét számoljuk ki. Ezeket a pontokat Voronoi pontoknak vehetjük. Ez a parabolikus görbe fájának azon levei segítségével lehetséges , amelyek a fában maradnak az összes pont feldolgozása után.Ezek a levelek fogják alkotni azokat a Voronoi éleket, amelyek nincsenek teljesen definiálva a feldolgozás után. 10. A parabolikus görbe adatstruktúrája A parabolikus görbe tárolására a bináris fa a legcélszerűbb.Ez nem csak a gyors kezelhetőség, hanem a görbe topologikus struktúrájából következően is a legoptimálisabb megoldás.
A p. görbe íveit a bináris fa levelei ábrázolják, míg két ív találkozását a közbelső csúcsok alkotják.A bal oldali parabolaívet a bal oldali levél ábrázolja, balról a második a fában balról a következő parabolaív és így tovább. A legkényesebb kérdés a bináris fából
történő törlés illetve új részek hozzáadása.Láttuk, hogy pont esemény
esetén új ív jelenik meg a görbében kettéosztva az illető pontól kezdve
a régi ívet. Az adatstruktúrában ez úgy jelenik meg, hogy a kettéosztott
ívnek megfelelő levelet részfával helyettesítjük. Az alábbi ábrán a részfának
három csúcsa van,
Befejezésül néhány szó a csúcsok és levelek tulajdonságairól. Különösképpen a parabolikus görbét ábrázoló fa és más struktúrák közti kapcsolat érdekel bennünket, illetve hogyan tárolodik a parabola a fában. Megjegyezzük, hogy nem egy valódi parabolát kell eltárolni hanem csak az azt definiáló pontot.Ezt a következő képlet adja ahol jelenti
a seprő egyenest a megfigylés pillanatában és jelenti
azt a P-beli pontot, amely a
ívet definiálja. 11. Az események tárolására szolgáló adastruktúra A Q sor az események y oordinátája
szerint van rendezve. Azokat az eseményeket tárolja, amelyek már ismertek.
Pont esemény esetén a pont egyszerűen tárolva van. Kör esemény bekövetkeztekor
a kör legutolso pontja tárolodik. Végül pedig egy pointer mutat a
|