Geometria Obliczeniowa IV

background image

2. Znajdujemy punkt

1. Startujemy z dowolnego punktu

.

k

P

m

P

, który leży na sferze o środku

k

P

i nie zawiera w swoim wnętrzu innych punktów.

3. Znajdujemy punkt

m

P

taki, że sfera przechodząca przez punkty

n

m

k

P

P

P

,

,

nie zawiera w swym wnętrzu

innych punktów z P.

4. Szukamy punktu

,

s

P

tak aby sfera przechodząca przez

s

n

m

k

P

P

P

P

,

,

,

nie zawierała innych punktów z P.

5. Budujemy czworościan o wierzchołkach

.

,

,

,

s

n

m

k

P

P

P

P

Konstrukcja

triangularyzacji

Delaunay’a N=3

background image

6. Startujemy z dowolnie wybranej ścianki
utworzonego czworościanu i szukamy punktu z
P tak, aby utworzyć nowy czworościan
przechodzący przez wierzchołki tej ścianki oraz
ten punkt.

Konstrukcja triangularyzacji
Delaunay’a N=3 c.d.

7. Proces kontynuujemy aż do wyczerpania punktów.

background image

Twierdzenie (II

Delaunay’a)

}

,

,

1

:

{

)

i

T

T

Z

i

rodzina sympleksów,

,

,

)

(

j

i

j

i

T

T

j

i

T

T

T

i

,

)

(

1

_

N

i

i

T

ii

},

,

,

1

:

{

i

P

P

i

},

,

,

1

:

{

i

V

V

i

},

,

,

1

:

{

i

Q

Q

i

.

#

},

:

{

i

k

i

k

i

W

L

V

Q

V

W

zbiór wierzchołków sympleksów,

zbiór wielokątów Voronoi,

zbiór wierzchołków wielokątów
Voronoi,

P – nieosobliwy,

background image

Twierdzenie (II

Delaunay’a) c.d.

T) a) Zbiór

,

}

{

1

P

P

L

k

k

które są w środkach leżą

i

W

na „sferze pustej” o środku w

.

i

Q

b) L=N+1 oraz punkty

L

k

k

P

1

}

{

określają sympleks
Delaunay’a.

i

Q

j

P

k

P

m

P

||

||

||

||

||

||

m

i

k

i

j

i

P

Q

P

Q

P

Q

1

N

L

ponieważ układ P
jest nieosobliwy

Gdyby

1

N

L

wówczas

„wędrująca kula” znalazłaby kolejny
punkta to oznaczałoby, że ten punkt
nie jest w

.

i

W

background image

Problem monitorowania

galerii

sztuki (obiektów

chronionych)

W celu ochrony galerii sztuki ustawiane są kamery, tak aby
każdy punkt był monitorowany. Zakładamy, że rzut galerii na
płaszczyznę poziomą jest wielokątem (ewentualnie z otworami).
Ponadto przyjmujemy:

• Kamery wiszą zawieszone na suficie,

• Kamery obracają się wokół pionowej osi,

• Liczba kamer powinna być minimalna z możliwością monitorowania
każdego zakamarka.

Problem monitorowania galerii sztuki można sprowadzić do

następujących punktów:
1. Jaka liczba kamer jest niezbędna ?,
2. Jak te kamery rozmieścić?.

background image

Problem monitorowania

galerii

sztuki (obiektów

chronionych)

Modelujemy galerię jako wielokąt płaski.

P wielokąt, dokonujemy
triangularyzacji wielokąta

Tw. Każdy wielokąt prosty można striangularyzować. Każda taka
triangularyzacja składa się z n-2 trójkątów.

Dowód:
n=3 n=4

n-2=2

background image

Problem monitorowania

galerii

sztuki (obiektów

chronionych)

Niech n>2, zakładamy, że twierdzenie jest prawdziwe dla każdego
m<n. Niech P będzie wielokątem z n wierzchołkami.
Wykażemy, że istnieje przekątna P.

Zakładamy, że twierdzenie jest prawdziwe dla każdego m<n.
Niech P będzie wielokątem z n wierzchołkami. Wykażemy, że
istnieje przekątna wielokąta P. Niech będzie najbardziej na lewo
wysuniętym wierzchołkiem P. Niech oznaczają dwa sąsiednie
wierzchołki w stosunku do na brzegu P. Jeśli odcinek
leży w środku P mamy przekątną.

m

P

j

i

P

P,

]

,

[

j

i

P

P

m

P

background image

Problem monitorowania

galerii

sztuki (obiektów

chronionych)

m

P

i

P

j

P

Przekątna zawiera
się w wielokącie

j

i

P

P,

m

P

j

P

i

P

Odcinek nie zawiera
się w wielokącie

j

i

P

P,

s

P

background image

Problem monitorowania

galerii

sztuki (obiektów

chronionych)

Jeśli odcinek zawiera się w P mamy przekątną.
W przeciwnym razie istnieje przynajmniej jeden wierzchołek leżący
wewnątrz lub na odcinku . Niech będzie
najbardziej na lewo wysuniętym punktem leżącym w
. wówczas

j

i

P

P,

j

i

m

P

P

P

j

i

P

P,

]

,

[

s

m

P

P

Odcinek nie może przecinać brzegu P,
taki punkt przecięcia byłby na lewo od co przeczy temu, że
jest najbardziej oddalonym na lewo punktem leżącym w

s

P

s

P

a to oznacza, że

]

,

[

s

m

P

P

jest przekątną.

Jeśli istnieje przekątna to dzieli ona wielokąt na dwa podwielokąty

.

2

1

W

W

W

Wprowadźmy następujące oznaczenia:

j

i

m

P

P

P

s

P

.

j

i

m

P

P

P

background image

Problem monitorowania

galerii

sztuki (obiektów

chronionych)

1

m

- liczba wierzchołków

,

1

W

2

m

- liczba wierzchołków

,

2

W

.

,

2

1

n

m

m

Z założenia indukcyjnego

,

1

W

2

W

dadzą się striangularyzować

A to oznacza, że P można striangularyzować.
Pozostaje wykazać, że P ma n-2 trójkąty.
Rozważmy dowolną triangularyzację wielokąta P. Weźmy pod uwagę
dowolną przekątną w tej triangularyzacji, ta diagonala dzieli W na

.

,

2

1

2

1

W

W

W

W

W

background image

Problem monitorowania

galerii

sztuki

,

2

2

1

n

m

m

ponieważ dwa wierzchołki powtarzają się,

2

4

2

4

2

1

n

n

m

m

posiada

P

1

P

ma

2

1

m

trójkątów,

2

P

ma

2

2

m

trójkątów,

Z powyższego twierdzenia wynika, że wystarczy n-2 kamer.
Ale każdy wierzchołek należy do przynajmniej dwóch trójkątów
z czego wynika, że wystarczy kamer.





 

2

2

n

background image

Problem monitorowania

galerii

sztuki

Czy istnieje lepsze rozmieszczenie kamer?
Niech będzie triangularyzacją zbioru punktów

P

T

.

P

Oznaczmy przez V najmniejszy podzbiór zbioru węzłów taki, że
każdy trójkąt ma przynajmniej jeden wierzchołek z V, wówczas
wystarczy rozmieszczać kamery w punktach zbioru V.

background image

Zasada trójkoloryzacji

Mając do dyspozycji trzy kolory kolorujemy wierzchołki tak, aby
każdy trójkąt miał wierzchołki w trzech różnych kolorach. Po takim
pokolorowaniu wystarczy umieszczać kamery w wierzchołkach
jednego koloru. Wynika stąd, że wystarczy kamer.





3

n

background image

GRAFY

Def. Grafem nazywamy trójkę {X,U,f}, gdzie
X – nazywamy zbiorem wierzchołków,
U – nazywamy zbiorem krawędzi,
f: U XX.,

f(u)=(x,y), x,yX.

Przykład

).

,

(

)

(

),

,

(

)

(

),

,

(

)

(

),

,

(

)

(

},

,

,

,

,

{

},

,

,

,

,

{

4

5

4

5

3

3

3

2

2

2

1

1

5

4

3

2

1

4

3

2

2

1

x

x

u

f

x

x

u

f

x

x

u

f

x

x

u

f

u

u

u

u

u

U

x

x

x

x

x

X

background image

GRAFY

Def. Graf nazywamy kompletnym, jeśli każde dwa węzły są
połączone przez dokładnie jedną krawędź.

Def. Ścieżką nazywamy ciąg krawędzi w którym każde dwie
kolejne mają wspólny węzeł każdy inny dla kolejnych krawędzi.

Def. Graf (X,U,f) nazywamy spójnym, jeśli dwa dowolne węzły
można połączyć ścieżką złożoną z krawędzi.

Def. Ścieżkę nazywamy zamkniętą, jeśli węzeł początkowy
pokrywa się z końcowym.

background image

GRAFY

Def. Graf nazywamy drzewem, jeśli nie ma w nim żadnej
ścieżki zamkniętej.

W striangularyzowanym trójkącie pokolorujemy węzły
każdego trójkąta trzema różnymi kolorami.
Do dozorowania „galerii sztuki” wystarczy [n/3] kamer.

Czy istnieje taka 3-koloryzacja?

}}

{

},

{{

)

(

:

)

(

,

}

,

,

1

:

{

ij

i

P

P

P

T

i

P

E

V

T

G

graf

oznacza

T

G

niech

T

yzacja

triangular

N

i

T

T

Niech

Graf ten nazwiemy grafem dualnym

.

background image

GRAFY

Gdzie,

i

V

- środek ciężkości i-tego trójkąta

ij

E

-krawędź łacząca i-ty i j-ty trójkąt, które mają wspólny

- bok.

Tw.

}}

{

},

{{

)

(

ij

i

P

E

V

T

G

jest drzewem.

Krawędzie

)

(

P

T

G

przecinają przekątne, wobec usunięcie
takiej krawędzi dzieli graf na pół, to znaczy
jest on drzewem.
c.n.d.

background image

GRAFY

}}.

{

},

{{

)

(

},

},

{

},

{{

)

(

j

i

ij

ij

i

P

V

V

E

f

f

E

V

T

G

Startujemy z dowolnego trójkąta T. Wierzchołki tego trójkąta
oznaczamy kolorem białym, czarnym i szarym. Następnie
znajdujemy trójkąt R mający wspólną przekątną z T.
Dwa wierzchołki R mają już kolory, trzeci oznaczamy „wolnym”
kolorem. Proces ten kontynuujemy. Ponieważ

)

(

P

T

G

jest drzewem to kolejny trójkąt nigdy wcześniej nie był
Koloryzowany, czyli zawsze mamy wolny kolor.
c.n.d.

background image

Program triangularyzacji

P[2][N} – tablica punktów,
POLY[NPOL][INDVER] – tablica podwielokątów,
TRIAN[3][NTRIAN] – tablica trójkątów,
# define MAXPOINTS 1000
# define MAXPOLYGONS 1000
# define MAXTRIANGLES 1000
# define MAXINDVER 1000double P[2][MAXPOINTS];
long POLY[MAXPOLYGONS][MAXINDVER];
longTRIAN[3][MAXTRIANGLES];
void main()
{
long point1,point2,N,firstfree,nod1,nod2,NTRIAN,K,pom,k1,k2;

background image

Program triangularyzacji

c.d.

printf(„\n Number of points \n”);
scanf(„ %ld”,N);
for(i=0;i<=N;i++)
scanf(„%lf%lf”,&P[0][i],&P[1][i]);
/*initialize array POLY*/
NPOL=1;
firstfree=0;
NTRIAN=0;
POLY[NPOL][0]=N;
for(i=0;i<=N;i++) POLY[NPOL][i+1]=i;
/* LOOP OVER ALL SUBPOLYGONS*/
for(i=0;i<=NPOL;i++)
if(POLY[i][0]==2)

background image

Program triangularyzacji

c.d.

{for(j=0;j<=2;j++) TRIAN[j][NTRIAN]=POLY[i][j];
NTRIAN=NTRIAN++;
firstfree=i;
NPOL=NPOL-1;}
else
{/*split polygon into two*/
finddiag(i,nod1,nod2);
if(nod1>nod2) {pom=nod1;nod1=nod2;nod2=pom};
/*find k1,k2 such that POLY[i][k1]=nod1, POLY[i][k2]=nod2 */
for(j=1;POLY[i][j]==nod1;j++) k1=j;
for(j=1;POLY[i][j]==nod2;j++) k2=j;
for(j=1;j<=k1;j++) POLY[firstfree][j]=POLY[i][j];
For(j=k2;j<=POLY[i][0];j++)
POLY[firstfree][j-k2+k1+1]POLY[i][j];
POLY[firstfree][0]=POLY[i][0]-k2+k1+1;

background image

Program triangularyzacji

c.d.

firstfree=NPOL+1;
NPOL=NPOL+1;
/*second subpolygon */
For(j=k1;j<=k2;j++) POLY[i][j-k1+1]=POLY[i][j];
POLY[i][0]=k2-k1+1;
firstfree=i;
}
/* printing of triangulation */
printf(„NUMBER of triangles = %ld\n”,NTRIAN);
printf(„Numbers of nodes of triangles\n”);
For(i=0;i<=NTRIAN;i++)
printf(„\n %ld %ld”,NTRIAN[0][i], NTRIAN[1][i], NTRIAN[2][i]);
}

background image

Triangulacja wielokąta

1. Znajdź przekątną
2. Podziel przekątną
3. W sposób rekursywny znajdź przekątne podwielokątów.

.

2

1

P

P

P

Poszukiwanie przekątnej
Znajdujemy najbardziej oddalony na lewo punkt v z P,
łączymy punkty u, w sąsiadujące z v,
jeśli [u, w] zawiera się w P się mamy przekątną,
w przeciwnym razie znajdujemy
najbardziej oddalony na lewo punkt q z uvw.

[v,q] jest przekątną P.

background image

finddiag(i,nod1,nod2)

long i,nod1,nod2;
{double amx,
Long np,j,left,ind1,ind2,j1;
/* find the most left point*/
amx=P[0][POLY[i][1]];
np=POLY[i][0];
for(j=1;j<=np.;j++)
if(P[0][POLY[i][j]<amx)
{amx=P[0][POLY[i][j]];
left=j;
/* find neighboring point to most left */

background image

If(left>0 && left < np )
{ind1=left-1;
ind2=left+1;
}
else
if(left==0}
{ind2=1; ind1=np-1}
else
ind1=np-1; ind2=0}
/*check intersections with boundary segments */
ind=0;
for(j=0;j<=np; && ind==0;j++)
{
j1=j%np+1;
ind=inters(P[0][POLY[i][j]],P[1][POLY[i][j]],
P[0][POLY[i][j1]],P[1][POLY[i][j1]]);
}

background image

if(ind==0)
{nod1=POLY[i][ind1];
nod2=POLY[i][ind2];
return 0;
}
/* find the most distant point from the segment nod1, nod2
in the triangle left,nod1,nod2 */
amx=0.;
for(j=1;j<=np;j++)
{if(intriangle(P[0][POLY[i][j]],P[1][POLY[i][j]],
P[0][left],P[1][left], P[0][nod1],P[1][nod1], P[0][nod2],P[1][nod2])
{zp=distPSEG(P[0][POLY[i][j]],P[1][POLY[i][j]],
P[0][nod1],P[1][nod1], P[0][nod2],P[1][nod2]);
If(zp>amx) {amx=zp;j1=j}}
nod1=POLY[i][left];
nod2=POLY[i][j1];
return 1}

background image


Document Outline


Wyszukiwarka

Podobne podstrony:
GEOMETRIA OBLICZENIOWA I
geometra obliczeniowa
Geometria Obliczeniowa III
Geometria obliczeniowa — lista 5, zadanie 4
Obliczenia IV, AGH WIMIR AiR, Semestr 4, PKM, materiały na projekty, projekt 2
Geometria Obliczeniowa V
Obliczenia IV - stabilizacja odpadów, ==SZKOŁA==, Gospodarka odpadami komunalnymi
Geometria obliczeniowa — lista 5, zadanie 4
Geometria obliczeniowa Wprowadzenie
Geometria Obliczeniowa II
Geometria obliczeniowa – przecinanie się odcinków 2
geometria, 2.0 B-U-D-O-W-N-I-C-T-W-O, 2.2 OBLICZENIA, 2.2.1 Geometria Wykreślna
GEOMETRIA OBLICZENIOWA I
geometra obliczeniowa
Geometria obliczeniowa Wprowadzenie geobli
Geometria obliczeniowa Wprowadzenie
Geometria obliczeniowa Wprowadzenie 2

więcej podobnych podstron