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, Uporządkuj zbiór wierzchołków ze względu na współrzędną y 3. 4. For j=3 until n-1 do 5. If oraz ostatni punkt w S są na różnych łańcuchach then wstaw przekątną od do punktów z S, tak aby odciąć trójkąt od wielokąta. wstaw oraz do S. else usuń ostatni wierzchołek z S. 6.
Trian_mon(P) c.d. 7. Usuń kolejne wierzchołki S jeśli tylko przekątna z do tego wierzchołka zawiera się wewnątrz wielokąta. Wstaw te przekątne do D. Wstaw ostatni wyrzucony z S wierzchołek spowrotem do S. 8. Wstaw do S. Endif 9. Dodaj przekątne poprowadzone do wszystkich Wierzchołków z S za wyjątkiem pierwszego i ostatniego. Tw. Wielokąt monotoniczny może być striangularyzowany w czasie O(n log n) z wykorzystaniem O(n) pamięci.
Zawieranie się odcinka w wielokącie Jeśli odcinek przecina się z brzegiem na pewno nie zawiera się w wielokącie. Jeśli końcami odcinka są wierzchołki wielokąta to obowiązują tutaj te same zasady. B A Odcinek nie zawiera się w wielokącie, nie jest przekątną. Przecina brzeg wielokąta. Odcinek nie zawiera się w wielokącie, pomimo tego, że nie przecina brzegu.
Zawieranie się odcinka w wielokącie - c.d. Zachodzi następujące twierdzenie: Tw. Odcinek zawiera się w wielokącie wtedy i tylko wtedy, gdy nie przecina brzegu oraz przynajmniej jeden jego punkt wewnętrzny należy do wnętrza wielokąta. Dowód: Jest oczywistym, że jeśli odcinek zawiera się w wielokącie to nie przecina brzegu i każdy jego punkt wewnętrzny zawiera się w wielokącie w szczególności jakiś wybrany. Z drugiej strony, jeśli odcinek nie przecina brzegu i jeden z jego punktów wewnętrznych zawiera się wewnątrz wielokąta to wszystkie jego punkty też muszą się w nim zawierać, bo w przeciwnym razie ten odcinek przecinałby brzeg wielokąta. c.n.d.
Przynależność punktu do wielokąta Zachodzi następująca własność: Punkt P należy do wnętrza wielokąta wtedy i tylko wtedy, gdy półprosta pozioma wychodząca z tego punktu przecina nieparzystą liczbę razy brzeg tego wielokąta. Punkt Q nie należy do wielokąt, natomiast P należy. Q A P
Przecięcie odcinka z półprostą Przecięcie półprostej l z odcinkiem [A,B] A l={X=P+t[1,0]: t>0} P X B Równanie prostej m przechodzącej przez punkty A, B: m={X=A+sv, s jest liczbą rzeczywistą}. Jeśli X jest punktem wspólnym l i m to: X=P+t[1,0]=A+sv, czyli t[1,0]-sv=A. Niech wtedy stąd Jeśli t>0 oraz 0<s<1 jest przecięcie w przeciwnym razie nie ma.
Przecięcie odcinka z półprostą c.d. Jeśli t>0 oraz 0<s<1 jest przecięcie W przeciwnym razie nie ma. Bardzo często w zastosowaniach odcinki brzegu są równoległe do osi układu współrzędnych. W sytuacji jak na rysunku l wobec czego powyższe wzory nie mają zastosowania. P A B
Przecięcie odcinka z półprostą c.d. Jeśli wtedy możemy uznać, że prosta l i odcinek [A,B] są równoległe. Przecięcie z brzegiem jest, jeśli Zwykle przyjmujemy W obliczeniach numerycznych zwykle układ punktów przeskalowywuje się i przesuwa, tak aby punkty mieściły się w kwadracie K=[0,1]×[0,1] i tak, żeby kwadrat K był najmniejszy ze wszystkich kwadratów o bokach równoległych do osi układu współrzędnych spełniających tą własność.
Przeskalowanie układu punktów Niech
Podział Dirichleta Def. Wielościanem Voronoi stowarzyszonym z punktem nazywamy zbiór: Lemat: Niech wówczas U jest hiperpłaszczyzną o normalnej oraz
Dowód N=3 N=2 U U A C A C B
Lemat c.d.
Własności wielościanów Voronoi
Własności wielościanów Voronoi
Własności wielościanów Voronoi
Wzór ten wynika bezpośrednio z definicji. - są zbiorami otwartymi, Dowód: na pewno wykażemy, że niech wówczas stąd c.n.d.
Własności wielościanów Voronoi (iv) Brzeg wielościanu Voronoi składa się z części hiperpłaszczyzn wyznaczonych przez przecięcia z częściami półprzestrzeniami przestrzeni n-wymiarowej. B A
Własności wielościanów Voronoi Dowód: Hipoteza Co prowadzi do sprzeczności. C.n.d. (vi) wypukłe. Dowód: niech n C
Układy punktów w przestrzeni a „wędrująca kula” Układ punktów nie Tw. Z) leżących na jednej hiperpłaszczyźnie. T) Istnieje dokładnie jedna sfera przechodząca przez te punkty. Dowód:Szukamy punktu X, który spełnia:
Układy punktów w przestrzeni a „wędrująca kula” c.d. W postaci macierzowej: Na podstawie lematu układ wektorów jest układem liniowo niezależnym co oznacza, że macierz tego układu jest nieosobliwa. C.n.d.
Układy punktów w przestrzeni a „wędrująca kula” c.d. Lemat: część wspólna dwóch przecinających się sfer zawiera się w jednoznacznie wyznaczonej płaszczyźnie. x Dowód: Punkt wspólny x leżący na przecięciu obu sfer spełnia: Po odjęciu stronami: czyli c.n.d.
I twierdzenie Delaunay’a Z) (i) rodzina sympleksów dzielących to znaczy (ii) Dowolny zbiór ograniczony ma część wspólną tylko ze skończoną liczbą sympleksów z (ii) Niech będzie zbiorem wszystkich punktów sympleksów rodziny Niech oznacza kulę przechodzącą przez wszystkie wierzchołki danego sympleksu T) nie zawiera wierzchołków w swoim wnętrzu i odwrotnie nie zawiera wierzchołków w swoim wnętrzu i odwrotnie.
I twierdzenie Delaunay’a c.d. Spełnione założenia tw. Delaunay’a Nie spełnione założenia tw. Delaunay’a Def. Układ punktów nazywamy układem osobliwym, jeśli k>N+1 oraz wszystkie jego punkty należą do jednej sfery w Przykład N=1
Konstrukcja triangularyzacji Delaunay’a Def. Zbiór punktów nazywamy osobliwym jeśli istnieje osobliwy podukład 1. Startujemy z dowolnego punktu 2. Znajdujemy punkt leżący na okręgu o środku I nie zawierający wewnątrz innego punktu z P. 3. Znajdujemy punkt leżący okręgu przechodzącym przez nie zawierający w swoim wnętrzu innych punktów.
Konstrukcja triangularyzacji Delaunay’a N=2 c.d. 4. Konstruujemy trójkąt o wierzchołkach 5. Startujemy z dowolnego boku tego tego trójkąta. Prowadzimy okrąg przechodzący przez końce tego boku i punkt SP, tak aby ten okrąg nie zawierał w swoim wnętrzu innych punktów z P. 6. Proces kontynuujemy aż do wyczerpania punktów.