Ecco un esercizio interessante:Trovare un raggio che interseca un poligono come numero di volte possibile
Sia P un semplice, ma non necessariamente convesso, poligono e q un punto arbitrario non necessariamente in P.
design un algoritmo efficace per trovare un segmento di linea proveniente da q che interseca il massimo numero di bordi di P.
in altre parole, se in piedi al punto q, in quale direzione si dovrebbe puntare una pistola in modo che il proiettile passerà attraverso il maggior numero di muri?
Una pallottola attraverso un vertice di P ottiene credito per un solo muro.
Un algoritmo O (n log n) è possibile. n è il numero di vertici o spigoli, poiché è un poligono, il numero di spigoli equivale approssimativamente al numero di vertici.
Ecco il mio pensiero:
Collegare q con tutti i vertici (diciamo ci sono N vertici) in P prima. Ci saranno N linee, o N-1 coppie di linee.
La linea di tiro finale deve essere tra queste coppie. Quindi dobbiamo trovare la coppia che contiene il maggior numero di bordi.
Non penso che questa soluzione sia O (n log n).
Qualche idea?
Wow., Non ne ho idea. Per curiosità, cosa c'è qui?Il numero di bordi? – Jeremy
Credo che questa domanda sia correlata: http://stackoverflow.com/questions/4446112/search-for-interval-overlap-in-list-of-intervals È possibile esprimere ogni segmento in P come una coppia di valori radianti che un raggio di q deve cadere tra –
Un'immagine andrebbe bene. –