Pagini recente » Diferente pentru contact intre reviziile 13 si 12 | Diferente pentru problema/joc7 intre reviziile 16 si 17 | Diferente pentru preoni-2006 intre reviziile 26 si 12 | Diferente pentru blog/comentarii intre reviziile 5 si 4 | Diferente pentru voronoi intre reviziile 54 si 53
Diferente pentru
voronoi intre reviziile
#54 si
#53
Nu exista diferente intre titluri.
Diferente intre continut:
Dorim sa separam acum dreptele vizibile din origine de celelalte drepte. Sa vedem daca nu putem lucra cumva cu punctele duale. Intuitiv, ce inseamna o dreapta INvizibila din origine? Inseamna o dreapta "departata" de origine (in sensul ca alte drepte vor fi mai aproape decat ea si o vor obtura). In limbaj dual, asta inseamna ca punctul dual va fi mai aproape de origine, in sensul ca vor fi alte puncte mai departe decat el.
Asta cred ca deja va sugereaza ideea de rezolvare. Daca v-ati gandit la infasuratoare convexa, ati pus punctul pe y. Algoritmul este urmatorul:
* Se da multimea de drepte !voronoi?img14.bmp!
* Aducem toate dreptele la forma !voronoi?img15.bmp!, impartind prin c ~i~
* Se da multimea de drepte (a ~i~ *x+b ~i~ *y+c ~i~ =0)
* Aducem toate dreptele la forma a ~i~ *x+b ~i~ *y+1=0, impartind prin c ~i~
* Aflam infasuratoarea convexa a multimii de puncte (a ~i~ ,b ~i~ )
* Punctele de pe aceasta infasuratoare convexa corespund dreptelor vizibile din origine.
(**) Cum se translateaza colectia de puncte este clar: din fiecare Pj.x se scade Pi.x si din fiecare Pj.y se scade Pi.y; in acest fel Pi.x si pi.y devin 0. Cum translatam laturile dreptunghiului (sau in cazul general o dreapta oarecare) ? Daca ecuatia originala era ax+by+c=0, scriem aceasta ecuatie relativ la Pi.x si Pi.y:
Fie !voronoi?img16.bmp!
!voronoi?img17.bmp!
Fie t=a*Pi.x + b*Pi.y + c
a(x-Pi.x) + b(y-Pi.y) + t =0
Deci noua ecuatie este
!voronoi?img18.bmp!
ax + by + t =0
Cu alte cuvine, pentru a translata dreapta cu -Pi.x si -Pi.y, scadem din c valoarea a*Pi.x + b*Pi.y.
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.