Pagini recente » Diferente pentru utilizator/dragos231456 intre reviziile 1 si 9 | Atasamentele paginii Sea2 | Atasamentele paginii Profil Necro | Atasamentele paginii Origami2 | Diferente pentru voronoi intre reviziile 33 si 34
Diferente pentru
voronoi intre reviziile
#33 si
#34
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 d ~i~ , si o intersecteaaza cu fiecare din celelalte drepte d ~j~ . In acest fel, d ~i~ se imparte in doua semidrepte, din care numai una este vizibila din origine, cealalta fiind obturata de catre d~j~. 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 d ~i~ , si o intersecteaaza cu fiecare din celelalte drepte d ~j~ . In acest fel, d ~i~ se imparte in doua semidrepte, din care numai una este vizibila din origine, cealalta fiind obturata de catre d ~j~ . 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.