Sunteți pe pagina 1din 12

Capitolul 4

Reuniunea a doua figure geometrice


4.1 Algoritmul de reuniune a doua figurii geometrice
Prin reuniunea a doua figuri geometrice bidimensionale intelegem obtinerea
acelei figuri geometrice care are urmatoarele 2 proprietati:
1. include suprafetele celor 2 figuri geometrice
2. este cea mai mica multime care are proprietatea nr.1
Exemplu:

Prin reuniunea figurii geometrice formate din punctele (A, B, C,.D) si a figurii
formate din punctele (F, E, G) se obtine figura geometrica formata din punctele (A, H, F,
E, I,C, B) deoarece aceasta include suprafetele celor doua figuri si este cea mai mica
multime care are aceasta proprietate.

Reprezentarea figurilor geometrice


Pentru a reprezenta figuri geometrice bidimensionale de orice tip, atit convex cit si
concav am folosit notiunea de linie poligonala multipla.

33
Prin linie poligonala multipla a unei figuri geometrice se intelege mai multe linii
poligonale inchise, suprafata figurii geometrice fiind cuprinsa intre aceste linii
poligonale.

Exemplu

In imaginea de mai sus linia poligonala multipla care reprezinta acesta figura este
formata din urmatoarele linii poligonale inchise:
 (A, B, C, D, E, F)
 (G, H, I, J)
 (K, L, M)

Motivul pentru care am ales sa folosesc conceptul de linii poligonale multiple


pentru a reprezenta figurile geometrice bidimensionale, este ca in urma reuniunii a doua

34
figuri geometrice bidimensionale, in anumite cazuri, figura rezultata contine gauri si
deci nu pote fi exprimata doar printr-o singura linie poligonala.
Exemplu

Se poate usor observa ca in cazul reuniunii figurii formate din punctele


(A,L,F,G,H) cu figura formata din punctele (I, C, D, J, N), figura rezultata nu contine
punctele aflate in interiorul poligonului format din punctele (K, L, M, N), deci are o
gaura.
Algoritmul deduce ce portiuni din segmentele celor doua linii poligonale multiple
vor constitui segmente in linia poligonala multipla a figurii rezultate in urma reuniunii si
compune acesta figura prin folosirea acestor informatii.

Algoritmul este compus din urmatorii 6 pasi:


I. Determinarea punctelor de intersectie ale celor doua linii poligonale multiple.
II. Introducerea punctelor de intersectie in liniile poligonale multiple, intre
extremitatile segmentelor din a caror intersectie provin .
III. Parcurgerea linie cu linie a fiecarei linii poligonale multiple si aflarea, pentru
linia curenta a punctelor, ce se afla in interiorul si in exteriorul suprafetei figurii

35
IV. Deducerea punctelor care sunt puncte de pe granita liniei poligonale multiple ce
va rezulta.
V. Alegerea segmentelor din cele 2 linii poligonale multiple, care vor forma linia
poligonala multipla ce va rezulta si compunerea acesteia.
VI. Optimizarea liniei poligonale multiple.

Determinarea punctelor de intersectie ale celor doua linii poligonale


multiple
Determinarea punctelor de intersectie ale celor doua linii poligonale multiple se
realizeaza prin calculul tuturor punctelor de intersectie, ale segmentelor, liniilor
poligonale inchise din cele 2 figuri geometrice, luandu-se in calcul perechi segmente de
forma [segment1,segment2] unde segment 1 provine din prima line poligonala multipla,
iar segment 2 din a doua linie poligonala multipla.
In cazul calcularii punctelor de intersectie dintre 2 segmente exista 4 mari cazuri.
1. Cind au un singur punct de intersectie, segmentele intretaindu-se.
Exemplu segmentul [A1,B1] si segmentul [C1,D1] au ca punct de
intersectie punctul E1
2. Cand segmentele se afla pe drepte paralele distincte.In acest caz segmentele
nu au nici un punct de intersectie.
Exemplu segmentul [A2,B2] si segmentul [C2,D2] nu au nici un punct de
intersectie.
3. Cand segmentele se afla pe aceias drepta dar nu au nici un punct comun.
Exemplu segmentul [A3,B3] si segmentul [C3,D3]
4. Cand segmentele se afla pe aceeasi dreapta si au cel putin un punct comun.
In acest caz pot rezulta pana la 2 puncte de intersectie.
Exemplu segmentul [A4,B4] si segmentul [B4,D4] au doar un punct de
intersectie punctul B4
Segmentul [A4’,B4’] si segmentul [C4’,D4’] au doua puncte de
intersectie, punctele B4’ si C4’.
5. Cand segmentele nu au nici un punct comun

36
Exemplu segmentul [A5,B5] si segmentul [C5,D5] nu au nici un punct de
intersectie.

Pentru a afla punctul de intersectie a doua segmente am calculat ecuatia dreptelor


pe care se afla aceste segmente.
Dintre cele 2 modalitati de a exprima ecuatia unei drepte am ales varianta cu trei
coeficienti (Ax+By+C=0).Am preferat aceasta varianta deoarece varianta folosind
tangenta presupune anumite probleme legate de faptul ca tangenta la Pi / 2 are valoarea
infinit.

37
Am folosit calculul urmatorilor determinanti pentrua a determina :

 Ecuatia dreptei cu ajutorul urmatorului determinant si identificarea


coeficientilor..A,B,C unde (X1,Y1), (Y2,Y2) sunt coordonatele punctelor ce
determina acest segment.
X1 Y1 1
X2 Y2 1
X Y 1

In acest caz, coeficientii A,B,C ai dreptei pe care sta acest segment sunt:
A=(Y1-Y2)
B=(X2-X1)
C=( X1 Y2-X2 Y1)
 Daca 2 drepte sunt una si aceeasi prin calculul urmatorului determinant urmat
de testarea daca valoarea determinantului este egala cu 0, unde A 1,B1,C1 si
A2,B2,C2 sunt coeficientii ecuatiilor celor doua drepte.
A1 B1 C1
A2 B2 C2
1 1 1

 Daca doua drepte sunt paralele prin calcularea valorii urmatorului


determinant si verificarea daca valoarea acestuia este egala cu 0, unde A 1,B1 si
A2,B2 sunt coeficientii ecuatiilor celor doua drepte.
A1 B1
A2 B2

Introducerea punctelor de intersectie in liniile poligonale multiple, intre


extremitatile segmentelor din a caror intersectie provin

38
Se introduc puncte de intersectie in liniile poligonale multiple intre extremitatile
segmentelor din a caror intersectie provin, avandu-se grija ca in cazul in care sunt mai
multe puncte de introdus intre extremiatile unui segment ca ele sa fie asezate
respectandu-se pozitionarea lor pe segment.(mai aproape, sau mai departe decat celelalte
puncte fata de una dintre extremitati.)
Exemplu:
in figura alaturata se
doreste adaugarea punctelor
C si D intre extremitatile
segmentului [A,b]. Se poate
observa ca dupa introducerea
punctului C intre punctele A
si B, la introducerea
punctului D intre A si B
trebuie decis daca se va
introduce intre punctele A si
C sau C si B.
.
La sfarsitul acestor primi doi pasi am spart segmentele initiale, ale celor doua
linii poligonale multiple in segmente ce se afla sau in interiorul suparfetei figurii ce va
rezulta sau pe granitele suparfetei figurii ce se doreste a se obtine
Motivul pentru care am realizat acest lucru este ca atunci cind un segment din
prima linie poligonala se intretaie intr-un punct cu alt segment din a doua linie poligonala
din cele patru .zone rezultate ca urmatea a suprapunerii celor doua semiplane ale celor
doua segmente, exista posibilitatea ca una dintrea zonele rezultate sa fie exteriora.
suparafetei figurii. si ca urmare este delimitata din doua subsegmente ale celor doua
segmente initiale.

39
Parcurgerea linie cu linie a fiecarei linii poligonale multiple si aflarea,
pentru linia curenta a punctelor, ce se afla in interiorul si in exteriorul
suprafetei figurii

Acest pas urmareste determinarea punctelor ce se afla in interiorul ariei unei linii
poligonale multiple, pentru cele 2 linii poligonale multiple.
Pentru acesta se parcurge fiecare figura linie cu linie si se calculeaza punctele de
intersectie dintre acesta linie si figura respectiva
Punctele de intersectie rezultate pot fi de trei feluri:
 Extremitate a unui segment ce este paralel cu axa Ox
 Extremitate a unui segment (caz in care el apare de 2 ori ca urmare a faptului
ca se afla pe segmentul curent cat si pe cel conectat cu acest segment. )
 Punct care nu este punct extrem ci doar se afla pe un segment..

Punctele de pe o linie se vor ordona dupa urmatoarele criteri:.


Se ordoneaza intai dupa coordonata x .La coordonate x egale se ordoneaza dupa
coordonata y..Daca atat coordonata x cat si coordonata y sunt egale (acest caz este

40
posibil doar daca punctul se afla pe mai mult de doua segmente, fiind punct extrem)
atunci se ordoneaza dupa celelate puncte extreme ale segmentelor din care provin.
Avand punctele de pe o linie se incepe o prelucrarea a lor. Algoritmul cauta
perechi de puncte cu semnificatia ca toate punctele intre primul punct si al doilea se afla
in interiorul suprafetei figurii
Aceasta alegere a perechiilor de puncte se realizeza in 3 etape:
1. se iau toate perechiile de puncte succesive care sunt extremitatile aceluiasi
segment.(acest segment este paralel cu axa Ox). Se elimina aceste perechi din
multimea punctelor de intersectie si se retin punctele aflate intre aceste
perechi de puncte ca puncte apartinand suprafetei figurii de reuniune.
2. apoi se gasesc toate perechile de puncte succesive cu coordonatele x si y
egale (exita 2 puncte succesive cu aceleasi coordonate daca punctul de
coordonate x,y este extremitatea unui segment si deci el este extremitate si al
segmentului urmator) .
In acest caz perechile de puncte sunt de forma [(x,y),(x,y)].Se observa ca
perechile sunt generate de acelasi punct.
Daca notam:
B punctul de coordonate (x,y) ,
A cealalta extremitate a primului segment
C cealalta extremitate a celui de-al al doilea segment
atunci se identifica toate perechiile de forma [B,B] care au pe A intr-un
semiplan fata de linia de cooordonata y si pe C in celalalt. Unul dintre aceste
puncte se sterge.
3. Perechiile ramase determina punctele care sunt in interiorul figurii sau pe
granita sa si care nu sint in aceet moment intre, daca avem puncte numerorate
intre 1 si n, unde n par atunci perechiile de forma 2k+1,2k+2, unde k apartine
multimii {0,n/2-1) sunt perechi ce determina puncte ce se afla pe suprafata
figurii.

41
Deducerea punctelor care sunt puncte de pe granita liniei poligonale
multiple ce va rezulta.

Se gasesc punctele de pe granite figurii prin faptul ca nu sunt inconjurate de 8 puncte


dintre punctele aflate pe suprafata figurii.

Alegerea segmentelor din cele 2 linii poligonale multiple care vor forma
linia poligonala multipla ce va rezulta, si compunerea acesteia.

Se testeaza pentru toate segmentele din liniile poligonale ce au rezultat in urma


introducerii in linii poligonale multiple a punctelor de intersectie, daca au doar puncte
dintre punctele descoperite ca puncte aflate pe granite figurii ce va rezulta. Daca da
atunci se ia acest segment si se introduce intr-un vector de linii poligonale.incercandu-se
sa se lipeasca acest segment de o linie poligonala ce are ca extremitate un nod neconectat
care coincide cu unul dintre punctele terminale ale acestui segment.

Optimizarea liniei poligonale multiple.


Acesta etapa are rolul de a micsora numarul de puncte si de linii poligonale ce
rezulta ca urmare a reuniunii suprafetelor celor doua linii poligonale multiple fara a
pierde insa din aspectul visual al figurii rezultate.
Acest lucru se realizeaza prin eliminarea punctelor care daca nu ar fi luate in
calcul intr-o linie poligonala multipla nu ar modifica aspectul sau graphic (adica conturul)
si reunirea mai multor linii poligonale multiple daca este posibil.
Motivatia pentru aceasta operatie este optimizarea figurii prin reducerea memoriei
ocupate si simplificarea modului cum este retinuta acesta figura geometrica.
Se realizeaza pe 2 etape:
 Etapa 1
Eliminarea punctelor care nu sunt indispensabile de pe liniile poligonale.
Prin puncte indispensabile inteleg puncte care daca nu ar fi luate in calcul
la reprezentarea figurii geometrice ar modifica aspectul grafic)

42
Daca mai mult de 2 puncte consecutive de pe o linie poligonala sunt colineare
atunci punctele cuprinse intre primul si ultimul dintre aceste puncte nu sunt
indispensabile; eliminarea lor nu determina modificarea conturului acestei linii
poligonale multiple.

Exemplu

Punctele A,D,F sunt indispensabile deoarece eliminarea lor ar determina


schimbarea aspectului grafic al figurii pe cand punctele B,C nu sunt puncte
indispensabile deoarece poligonul ABCDEF are acelasi contur cu poligonul
ADEF
 Etapa 2 reuniunea liniilor poligonale inchise daca au un punct comun..
Daca 2 linii poligonale inchise au un punct comun atunci ele pot fi reunite
figura rezultata fiind aceeasi .Daca avem liniile poligonale formate din
punctele(a1,..an,a1) respectiv (b1..bm,b1) si punctual ai=bj atunci reuniunea
acestor doua linii poligonale este (a1..ai-1,ai,bj+1..bm,b1..bj-1, ai,ai+1,an,a1)

43
Exemplu

In figura de mai sus poligonul ABCD se poate reuni cu poligonul DEF .


Poligonul rezultat este ABCDFED
La sfarsitul acestor 6 pasi vom obtine reuniunea acestor doua figuri geometrice.

44

S-ar putea să vă placă și

  • Important A
    Important A
    Document2 pagini
    Important A
    Andrei Sandu
    Încă nu există evaluări
  • Cap4 1
    Cap4 1
    Document12 pagini
    Cap4 1
    Andrei Sandu
    Încă nu există evaluări
  • Cap 1
    Cap 1
    Document18 pagini
    Cap 1
    Andrei Sandu
    Încă nu există evaluări
  • Cap4 2
    Cap4 2
    Document15 pagini
    Cap4 2
    Andrei Sandu
    Încă nu există evaluări
  • Cap 2
    Cap 2
    Document6 pagini
    Cap 2
    Andrei Sandu
    Încă nu există evaluări
  • Aplicatie
    Aplicatie
    Document6 pagini
    Aplicatie
    Anonymous 5RjXpI
    Încă nu există evaluări
  • Cap 3
    Cap 3
    Document7 pagini
    Cap 3
    Andrei Sandu
    Încă nu există evaluări
  • Licență
    Licență
    Document27 pagini
    Licență
    Andrei Sandu
    Încă nu există evaluări
  • Teorie 1
    Teorie 1
    Document17 pagini
    Teorie 1
    Andrei Sandu
    Încă nu există evaluări
  • Important A
    Important A
    Document2 pagini
    Important A
    Andrei Sandu
    Încă nu există evaluări
  • XML
    XML
    Document7 pagini
    XML
    Andrei Sandu
    Încă nu există evaluări
  • Important A
    Important A
    Document2 pagini
    Important A
    Anonymous 5RjXpI
    Încă nu există evaluări
  • Descrierea Algoritmului
    Descrierea Algoritmului
    Document13 pagini
    Descrierea Algoritmului
    Anonymous 5RjXpI
    Încă nu există evaluări
  • Cap4 1
    Cap4 1
    Document12 pagini
    Cap4 1
    Andrei Sandu
    Încă nu există evaluări
  • Cap4 2
    Cap4 2
    Document15 pagini
    Cap4 2
    Andrei Sandu
    Încă nu există evaluări
  • Cap 2
    Cap 2
    Document6 pagini
    Cap 2
    Andrei Sandu
    Încă nu există evaluări
  • Cap 1
    Cap 1
    Document18 pagini
    Cap 1
    Andrei Sandu
    Încă nu există evaluări
  • XML
    XML
    Document7 pagini
    XML
    Andrei Sandu
    Încă nu există evaluări
  • Cap 3
    Cap 3
    Document7 pagini
    Cap 3
    Andrei Sandu
    Încă nu există evaluări
  • Important A
    Important A
    Document2 pagini
    Important A
    Anonymous 5RjXpI
    Încă nu există evaluări
  • Licență
    Licență
    Document27 pagini
    Licență
    Andrei Sandu
    Încă nu există evaluări
  • Teorie 1
    Teorie 1
    Document17 pagini
    Teorie 1
    Andrei Sandu
    Încă nu există evaluări
  • XML
    XML
    Document7 pagini
    XML
    Andrei Sandu
    Încă nu există evaluări
  • Descrierea Algoritmului
    Descrierea Algoritmului
    Document13 pagini
    Descrierea Algoritmului
    Anonymous 5RjXpI
    Încă nu există evaluări
  • Teorie 1
    Teorie 1
    Document17 pagini
    Teorie 1
    Andrei Sandu
    Încă nu există evaluări
  • Important A
    Important A
    Document2 pagini
    Important A
    Anonymous 5RjXpI
    Încă nu există evaluări
  • Aplicatie
    Aplicatie
    Document6 pagini
    Aplicatie
    Anonymous 5RjXpI
    Încă nu există evaluări
  • Descrierea Algoritmului
    Descrierea Algoritmului
    Document13 pagini
    Descrierea Algoritmului
    Anonymous 5RjXpI
    Încă nu există evaluări
  • Cap 3
    Cap 3
    Document7 pagini
    Cap 3
    Andrei Sandu
    Încă nu există evaluări
  • Aplicatie
    Aplicatie
    Document6 pagini
    Aplicatie
    Anonymous 5RjXpI
    Încă nu există evaluări