Transcript gobr-07

Geometria obrazu
Wykład 7
1.
2.
-
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 2n2-k ścian i 3n-3-k krawędzi (ćwiczenia).
2. Każdy trójkąt odpowiada wierzchołkowi
diagramu Voronoi. Każda krawędź triangulacji 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 p i p j
należy do triangulacji Delaunay.
4. Triangulacja Delaunay w R2 maksymalizuje minimalny kąt w triangulacji.
5. Triangulacja w Rd zawiera O(nd/2)
sympleksów.
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ą.

2 43

65
1
2

65
1 
3 4
(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 wierzchołku w pi;
end;
usuń z T punkty q1, q2, q3 wraz z incydentnymi 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 wierzchoł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 czworoką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.
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).
3
9
5
4
8
1
Metoda otoczek.
1.
2.
3.
4.
5.
6.
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.
1.W wypukłym czworokącie odpowiadającym triangulacji terenu co
najwyżej jedna krawędź wyznacza dolinę.
2.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.
3.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”
Dziękuję za uwagę.
Ćwiczenia.
1.
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.
2.
Podaj przykład triangulacji oraz kwadratowej liczby zmian krawędzi
przekształcającej ją w triangulację Delaunay.
3.
Pokaż, że algorytm zmian dokonuje co najwyżej O(n2) zamian.
4.
Udowodnij, że algorytm legalizacji krawędzi zakończy się.
5.
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).