230 likes | 382 Views
Geometria obrazu Wykład 7. Triangulacja Delaunay Definicje i właściwości Algorytm legalizacji krawędzi Algorytm przyrostowy Modelowanie terenu Metoda zamian Metoda otoczek Skracanie dolin.
E N D
Geometria obrazuWykład 7 • Triangulacja Delaunay • Definicje i właściwości • Algorytm legalizacji krawędzi • Algorytm przyrostowy • Modelowanie terenu • Metoda zamian • Metoda otoczek • Skracanie dolin
Dany jest zbiór S zawierajacy n punktów na płaszczyźnie. Załóżmy, że żadne cztery punkty ze zbioru S nie są współokręgowe. Triangulacją Delaunay nazywamy graf dualny do diagramu Voronoi, którego wierzchołkami są punkty z S a krawędzie łączą wierzchołki odpowiadające sąsiednim obszarom Voronoi. Triangulacje Delaunay możemy również rozpatrywać bez żadnych ograniczeń dla zbioru S. Jednakże wtedy triangulacja może być wyznaczona niejednoznacznie.
Własności triangulacji Delaunay. 1. Jest to (z definicji) graf planarny o n wierzchołkach. Brzegiem triangulacji jest otoczka wypukła zbioru S. Jeśli otoczka ma k wierzchołków, to triangulacja ma 2n-2-k ścian i 3n-3-k krawędzi (ćwiczenia). 2. Każdy trójkąt odpowiada wierzchołkowi diagramu Voronoi. Każda krawędź trian-gulacji odpowiada krawędzi diagramu. 3. Okrąg przechodzący przez dwa punkty pi,pj S, który nie zawiera w swoim wnętrzu innych punktów z S, istnieje wtedy i tylko wtedy, gdy odcinek należy do triangulacji Delaunay. 4. Triangulacja Delaunay w R2 maksy-malizuje minimalny kąt w triangulacji. 5. Triangulacja w Rd zawiera O(nd/2) sympleksów.
4 3 2 5 6 2 1 5 6 1 4 3 Algorytm legalizacji krawędzi. Dla triangulacji T zbioru S definiujemy wektor kątów, jako uporządkowany niemalejąco ciąg wszystkich kątów trójkątów tworzących triangulację A(T) := (1, 2, ...., m). Przekątną czworokąta wypukłego nazywamy krawędzią nielegalną, gdy wektor kątów dla przyległych do niej trójkątów jest leksykograficznie mniejszy od wektora kątów trójkątów tworzonych przez drugą przekątną. (1, 2, ...., 6) < (1, 2, ...., 6)
Algorytm LegalTiangulation(S) Dane: Dowolna triangulacja T zbioru S Wynik: Legalna triangulacja zbioru S while T zawiera nielegalną krawędź e do zastąp e przez krawędź e’ łączącą przeciwległe wierzchołki trójkątów sąsiadujących z e; return T; Algorytm jest nieefektywny (jego złożoność wynosi (O(n2) x czas znalezienia kolejnej nielegalnej krawędzi).
Algorytm przyrostowy. Załóżmy, że mamy dodatkowe trzy punkty tworzące trójkąt, wewnątrz którego znajdują się punkty ze zbioru S. Dodając kolejny punkt dostajemy jeden z dwóch przypadków: • dodany punkt wpada do wnętrza jednego z trójkątów aktualnej triangulacji, • dodany punkt pojawia się na krawędzi aktualnej triangulacji. W obu przypadkach łączymy go z wierzchołkami trójkątów, do których należy.
procedure LegalizeEdge(p,e,T) (*Niech wstawiany punkt p i krawędź e tworzą trójkąt należący do T oraz krawędzie e, e’ i e” tworzą trójkąt sąsiadujący *) if e jest nielegalna then begin zamień e przez krawędź łączącą p z przeciwległym wierzchołkiem sąsiedniego trójkąta; LegalizeEdge(p,e’,T); LegalizeEdge(p,e”,T); end;
Algorytm DelaunayTriangulation(S) Dane: Zbiór S i trzy punkty q1, q2, q3 ograniczające S. Wynik: Triangulacja Delaunay zbioru S. T:= trójkąt q1q2q3 ; oblicz losową permutację punktów z S; for i:=1 to n do begin znajdź trójkąt w T, do którego należy pi; połącz pi z odpowiednimi wierzchoł-kami T; legalizuj krawędzie trójkątów o wierz-chołku w pi; end; usuń z T punkty q1, q2, q3 wraz z incydent- nymi krawędziami; return T;
Twierdzenie. Algorytm ten znajduje triangulację Delaunay dla zbioru n punktów na płaszczyźnie w oczekiwanym czasie O(n log n) i oczekiwanej pamięci O(n).
Modelowanie terenu. Rozpatrujemy zbiór punktów na płaszczyźnie, którym została przypisana dodatkowa wartość (wysokość). Naszym celem jest stworzenie triangulacji o własnościach zbliżonych do triangulacji Delaunay i spełniającej dodatkowe warunki: • minimalizacji liczby lokalnych minimów w grafie triangulacji (tzn. wysokości wszystkich sąsiadów są niemniejsze od wysokości danego wierzchołka) , • minimalizacji liczby i rozmiaru „dolin”, tzn. spójnych zbiorów krawędzi łączących wierz-chołki, dla których ciąg wysokości kolejnych sąsiadów ma co najmniej dwa lokalne minima.
Fakt. Triangulacja Delaunay nie koniecznie musi spełniać podane warunki. Twierdzenie. Problem znalezienia triangulacji minimalizującej liczbę lokalnych minimów jest NP-trudny. Wniosek. Poszukujemy rozwiązań aproksymacyjnych. Triangulację nazywamy triangulacją Delaunay rzędu k, gdy okrąg opisany na dowolnym trójkącie triangulacji zawiera w swoim wnętrzu co najwyżej k punktów z danego zbioru S. Taka triangulacja nie jest jednoznaczna.
Metoda zamian. Postępujemy podobnie jak w przypadku znajdywania legalnej triangulacji. Startujemy z triangulacji Delaunay i zamieniamy przekątne w czworo-kącie będącym sumą sąsiednich trójkątów triangulacji, jeśli • dwa nowe trójkąty należą do triangulacji Delaunay rzędu k, • końcem nowej krawędzi jest najniższy wierzchołek danego czworokąta. Operacje te wykonujemy aż do wyczerpania możliwości zamian. Lemat. Algorytm wykonuje co najwyżej O(n2) zamian. (ćwiczenia) Lemat. Dla danego k algorytm wykonuje co najwyżej O(nk) zamian.
3 9 5 4 8 1 Twierdzenie. Dla danego k i zbioru n punktów na płaszczyźnie zastosowanie metody zamian w triangulacji Delaunay rzędu k wymaga czasu O(nk2 + nk log n). Przykład. Nie zawsze udaje się otrzymać rozwiązanie optymalne (k = 2).
Metoda otoczek. • Dla danego zbioru S i wartości k konstruujemy zbiór krawędzi E, do którego należą wszystkie krawędzie, które mogą wystąpić w pewnej triangulacji Delaunay rzędu k. • Krawędzie z E porządkujemy względem najmniejszego k’, przy którym dana krawędź pojawia się w triangulacji Delaunay rzędu k’. • Wyznaczamy zbiór S’ lokalnych minimów w triangulacji Delaunay oraz podzbiór E’ zbioru E krawędzi, które łączą punkty z S’ z punktem o mniejszej wysokości. • Zaczynamy od pierwszej krawędzi e z E’. Eliminujemy wszystkie krawędzie triangulacji Delaunay, które przecina e. Triangulujemy obszary powstałe po obu stronach e i zaznaczamy nowe krawędzie. • Tak samo postępujemy z kolejną krawędzią z E’. Jeśli przecina ona wybraną wcześniej krawędź z E’ lub zaznaczone krawędzie triangulacji, to pomijamy ją. • Po wstawieniu e do grafu, usuwamy z E’ wszystkie krawędzie, dla których wyższy koniec e jest również wyższym końcem.
Twierdzenie. Dla danego k i zbioru n punktów na płaszczyźnie zastosowanie metody otoczek w triangulacji Delaunay rzędu k wymaga czasu O(nk2 + nk log n).
Przykład. Model terenu powstały po zastosowaniu • triangulacji Delaunay, • metody zamian (k = 8), • metody otoczek (k = 8). De Kok et al.. „Generating realistic terrains with higher-oorder Delaunay triangulations”
Powyższe rozważania dotyczyły minimalizacji liczby lokalnych minimów. Rozważmy teraz możliwości wpływu na kształt dolin. Mamy trzy rodzaje krawędzi. De Kok et al.. „Generating realistic terrains with higher-oorder Delaunay triangulations”
Fakt. • W wypukłym czworokącie odpowiadającym triangulacji terenu co najwyżej jedna krawędź wyznacza dolinę. • Jeśli dwie krawędzie trójkąta triangulacji wyznaczają dolinę, to ich wspólny koniec nie jest najwyższym punktem tego trójkąta. • Na ewentualną likwidację krawędzi wyznaczającej dolinę ma wpływ zamiana co najwyżej pięciu krawędzi należących do czworokąta wypukłego, którego przekątną jest dana krawędź (ta krawędź i boki czworokąta). Próbujemy zmniejszyć liczbę krawędzi wyznaczających dolinę dokonując zamian krawędzi. Wykorzystując diagram Voronoi (k+1)-rzędu sprawdzamy, czy triangulacja pozostaje triangulacją Delaunay rzędu k.
Twierdzenie. Dla danego k i zbioru n punktów na płaszczyźnie zastosowanie metody skracania dolin w triangulacji Delaunay rzędu k wymaga czasu O(nk log n).
Przykład. • Model terenu powstały po zastosowaniu skracania dolin oraz • triangulacji Delaunay, • metody zamian (k = 8), • metody otoczek (k = 8). De Kok et al.. „Generating realistic terrains with higher-oorder Delaunay triangulations”
Ćwiczenia. • Udowodnij, że triangulacja Delaunay, której brzegiem jest otoczka wypukła o k krawędziach ma 2n-2-k ścian i 3n-3-k krawędzi. • Podaj przykład triangulacji oraz kwadratowej liczby zmian krawędzi przekształcającej ją w triangulację Delaunay. • Pokaż, że algorytm zmian dokonuje co najwyżej O(n2) zamian. • Udowodnij, że algorytm legalizacji krawędzi zakończy się. • Udowodnij, że jeśli krawędź ab jest w triangulacji, to metoda zamian nigdy nie wygeneruje krawędzi cd przecinającej ab takiej, że min(c,d) min(a,b).