Geometria obrazu Wykład 7

Slides:



Advertisements
Podobne prezentacje
Sympleksy n=2.
Advertisements

DOMINOWANIE W GRAFACH Magdalena Lemańska.
ALGORYTMY GRAFOWE.
Geometria obrazu Wykład 3
Materiały pochodzą z Platformy Edukacyjnej Portalu
Wykład 6 Najkrótsza ścieżka w grafie z jednym źródłem
Minimalne drzewa rozpinające
Figury płaskie-czworokąty
Temat: WIELOŚCIANY KLASA III P r.
Przygotowały: Jagoda Pacocha Dominika Ściernicka
Trian_mon(P) Input: y-monotoniczny wielokąt zapamiętany jako zbiór boków, Output: triangulacja D jako zbiór krawędzi. Wyodrębnij prawy i lewy łańcuch punktów,
CZWOROKĄTY Patryk Madej Ia Rad Bahar Ia.
Geometria obliczeniowa Wykład 1
Interaktywny edytor terenu
ALGORYTMY GEOMETRYCZNE.
WYKŁAD 7. Spójność i rozpięte drzewa
GRAFY PLANARNE To grafy, które można narysować na płaszczyźnie tak, by krawędzie nie przecinały się (poza swoimi końcami). Na przykład K_4, ale nie K_5.
Eliminacja powierzchni niewidocznych Wyznaczanie powierzchni widocznych Które powierzchnie, krawędzie i punkty są widoczne ze środka rzutowania (albo wzdłuż.
Pola Figur Płaskich.
Geometria obrazu Wykład 8
Geometria obrazu Wykład 6
WYKŁAD 7. Spójność i rozpięte drzewa Graf jest spójny, gdy dla każdego podziału V na dwa rozłączne podzbiory A i B istnieje krawędź z A do B. Definicja.
Krótki kurs geometrii płaszczyzny
GEOMETRIA PROJEKT WYKONALI: Wojciech Szmyd Tomasz Mucha.
MATEMATYKAAKYTAMETAM
Geometria obliczeniowa Wykład 8
Geometria obliczeniowa Wykład 3
Figury przestrzenne.
Figury płaskie I PRZESTRZENNE Wykonała: Klaudia Marszał
Trójkąty.
Geometria obliczeniowa Wykład 6
FIGURY GEOMETRYCZNE.
Geometria obliczeniowa Wykład 7
Geometria obliczeniowa Wykład 13
Geometria obrazu Wykład 7
Algorytmy i Struktury Danych
Bryły.
Geometria obliczeniowa Wykład 13 Planowanie ruchu 1.Znajdywanie ścieżki między dwoma punktami. 2.Ruch postępowy robota wielokątnego na płasz- czyźnie.
Grafika i komunikacja człowieka z komputerem
Geometria obrazu Wykład 3
Grafika i komunikacja człowieka z komputerem
Vademecum: Bryły Zagadnienia.
BRYŁY.
Geometria obliczeniowa Wykład 12 Planowanie ruchu 1.Najkrótsza ścieżka między dwoma punktami. 2.Znajdywanie ścieżki między dwoma punktami. 3.Ruch postępowy.
Geometria obrazu Wykład 6
PLANARNOŚĆ i KOLOROWANIE MAP. Problem Jaka jest minimalna liczba kolorów, za pomocą których można pokolorować obszary województw na mapie Polski tak,
Autor: Marcin Różański
WIELOKĄTY Karolina Zielińska kl.v Aleksandra Michałek kl v
Geometria obliczeniowa Wykład 2
„Między duchem a materią pośredniczy matematyka. ”
Geometria obliczeniowa Wykład 13 Algorytmy randomizowane 1.Lokalizacja punktu w siatce trapezów. 2.Znajdywanie średnicy zbioru punktów w R 3. Algorytmy.
PODSTAWY STEREOMETRII
Figury płaskie Układ współrzędnych.
Definicje Fot: sxc.hu, wyszukano r.
Geometria płaska Pojęcia wstępne.
1.problem próbkowania (sampling problem) dobór charakterystycznych punktów powierzchni w celu uzyskania najlepszego efektu przy minimalizacji ilości danych.
FIGURY PŁASKIE.
Figury płaskie.
Geometria obliczeniowa Wykład 10 Dualizacja liniowa c.d. 1. Poziomy 2. Otoczka wypukła Ciągi Davenporta-Schinzela Problemy optymalizacyjne 1. Problem wyważania.
Geometria obliczeniowa Wykład 6
Geometria obliczeniowa Wykład 3
Figury geometryczne.
Okrąg wpisany w trójkąt.
Geometria obliczeniowa Wykład 3
Geometria obliczeniowa Wykład 7
Geometria obliczeniowa Wykład 1
Geometria obliczeniowa Wykład 6
Geometria obrazu Wykład 7
Geometria obliczeniowa Wykład 8
Zapis prezentacji:

Geometria obrazu Wykład 7 Siatki i triangulacja Delaunay Modelowanie Siatki wielokątowe Diagram Voronoi i triangulacja Delaunay Modelowanie terenu Metoda zamian Metoda otoczek Skracanie dolin

Modelowanie — w grafice 3D proces tworzenia i modyfikacji obiektów trójwymiarowych za pomocą specjalizowanego programu komputerowego, zwanego modelerem, który dostarcza zestawu niezbędnych narzędzi, a także często zbioru podstawowych figur (w j. ang. primitives), np. prostopadło-ścianów, kul i innych, które można wykorzystać od razu przy budowaniu obiektów. Obiekty 3D są przeważnie budowane z siatek wielokątów lub definiowane przy pomocy krzywych bądź powierzchni parametrycznych (np. płaty Beziera, NURBS (Non-Uniform Rational B-Spline)). Siatka wielokątowa (polygonal mesh) to zbiór połączonych płaskich powierzchni ograniczonych przez krzywe zamknięte. Zazwyczaj mamy do czynienia z siatkami trójkątnymi.

Przykład. Chmura punktów i siatka wielokątowa. [pcworld.pl]

Reprezentacje siatki: vertex-vertex: wierzchołek i jego sąsiedzi, vertex-edge : wierzchołek i sąsiadujące krawędzie, vertex-edge-face: zależności między odpowiednimi elementami, winged-edge (podwójnie łączona lista krawędzi). Nie każda reprezentacja pozwala na opis dowolnej siatki, np. w przypadku powierzchni niejednospójnej.

Przykład. Podwójnie łączona lista krawędzi . Niech D będzie podziałem płaszczyzny na wielokątne obszary. Z każdą krawędzią zwiążmy dwie przeciwnie zorientowane półkrawędzie. Podwójnie łączona lista krawędzi składa się z powiązanych ze sobą trzech zbiorów rekordów: półkrawędzi pamiętających wskaźniki do ściany leżącej z lewej strony, następnej, poprzedniej i sąsiedniej półkrawędzi dla tej ściany oraz początek półkrawędzi, ściany pamiętających wskaźniki do pew-nej półkrawędzi na jej zewnętrznym brze-gu oraz do wybranych półkrawędzi ścian zawartych w danej, - wierzchołka pamiętających jego współ-rzędne i wskaźnik do dowolnej krawędzi zaczynającej się w nim. nil

Teselacja (ang. tessellation) – dzielenie wygenerowanych podczas tworzenia obrazu 3D wielokątów na mniejsze, dzięki czemu wyświetlany obiekt może być dokładniej narysowany. Podczas teselacji powstaje siatka wielokątów, która reprezentuje powierzchnię obiektu. Najczęściej obiekt dzielony jest na trójkąty (triangulacja) lub ich grupy. Przykład. [chip.pl]

Przykładowy algorytm triangulacji siatki wielokątowej Przykładowy algorytm triangulacji siatki wielokątowej. Dla danej ściany znajdujemy płaszczyznę P, która jest średniokwadratowo najbliższa wierzchołkom tej ściany (jeśli ściana jest płaska, to szukana płaszczyzna zawiera ją). Dla każdej krawędzi k dzielącej ścianę znajdujemy płaszczyznę P’ prostopadłą do P i zawierającą tę krawędź. Obliczamy stosunek odległości od P’ najbliższego wierzchołka ściany nienależącego do P’ i długości krawędzi k. Do podziału ściany wybieramy tę krawędź k, dla której obliczona wartość będzie największa (w ten sposób staramy się zmaksymalizować rozwartości katów tworzonych trójkątów). Powtarzamy tę procedurę aż do otrzymania triangulacji.

Definicja diagramu Voronoi. Niech S={p1, ... , pn} będzie zbiorem n punktów na płaszczyźnie. Dla każdego z punktów należących do S określamy obszar Voronoi zawierający punkty płaszczyzny, dla których dany punkt jest najbliższy spośród punktów z S, tzn.: VD(pi)={x: ii d(pi,x)  d(pj,x)}. Punkty należące do brzegów obszarów Voronoi tworzą diagram Voronoi. Lemat. Obszar Voronoi jest wielokątem wypukłym (może być nieograniczony).

Triangulacja Delaunay. 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. 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(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ą. 6 5 4 3 2 1 6 5 4 3 2 1 (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; Taki algorytm jest nieefektywny.

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. takich punktów, dla których 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. Dla danego k algorytm wykonuje co najwyżej O(nk) zamian.

Metoda otoczek. Dla danego zbioru S i wartości k konstruujemy zbiór krawędzi E, do którego należą wszystkie krawędzie mogące 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 przecinają 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).

Model terenu powstały po zastosowaniu triangulacji Delaunay, 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).

Model terenu powstały po zastosowaniu skracania dolin oraz 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. Podaj algorytm znajdujący dla każdego punktu p  S punkt z S, który jest najbliższy niego. 2. Dana jest mapa płaska o n wierzchołkach, z których każdy ma stopień 3. Zaproponuj algorytm sprawdzający, czy mapa jest diagramem Voronoi skończonego zbioru S. Jeśli tak, to stwórz S. 3. Podaj przykład triangulacji Delaunay w R3 rozmiaru kwadratowego.