Diferente pentru voronoi intre reviziile #13 si #14

Nu exista diferente intre titluri.

Diferente intre continut:

<p>Sa pornim de la urmatoarea problema: Avem o colectie de N drepte in plan, oricare doua neconfundate, astfel incat nici una din ele nu trece prin origine. Sa se indice care din drepte sunt vizibile din origine.</p>
<p>Un algoritm decent functioneaza in O(N^2), astfel: ia fiecare dreapta di, si o intersecteaaza cu fiecare din celelalte drepte dj. In acest fel, di se imparte in doua semidrepte, din care numai una este vizibila
din origine, cealalta fiind obturata de catre dj. In felul acesta tot intersectam semidrepte peste semidrepte, si vedem daca in final ramanem cu vreun segment vizibil din origine. Desigur, pe parcurs apare tot
tacamul de cazuri particulare: drepte verticale, drepte orizontale, erori de calcul, radicali, distante etc. Sper ca v-am scarbit destul ca sa vreti sa aflati si o implementare mai eleganta.</p>
<p>Un algoritm decent functioneaza in O(N^2), astfel: ia fiecare dreapta di, si o intersecteaaza cu fiecare din celelalte drepte dj. In acest fel, di se imparte in doua semidrepte, din care numai una este vizibila din origine, cealalta fiind obturata de catre dj. In felul acesta tot intersectam semidrepte peste semidrepte, si vedem daca in final ramanem cu vreun segment vizibil din origine. Desigur, pe parcurs apare tot tacamul de cazuri particulare: drepte verticale, drepte orizontale, erori de calcul, radicali, distante etc. Sper ca v-am scarbit destul ca sa vreti sa aflati si o implementare mai eleganta.</p>
<p>Vom prezenta un algoritm foarte dragut si foarte cunoscut (in final) care rezolva problema in O(N log N). Facem intai urmatoarea conventie. De vreme ce dreptele nu trec prin origine, ele au ecuatii de forma ax+by+c=0, cu c<>0. Atunci le vom aduce pe toate la forma ax+by+1=0 (evident, impartind prin c).</p>

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.