Dato un insieme di punti distinti nello spazio 2D e un rettangolo (le coordinate di tutti e quattro i punti, i lati paralleli con l'asse xy), come individuare rapidamente i punti all'interno del rettangolo?Algoritmo veloce per trovare tutti i punti all'interno di un rettangolo
Non sono interessato alla soluzione di base di passare attraverso tutti i punti e vedere quale si trova all'interno del rettangolo. Quello che sto cercando è un algoritmo che mi fornirà tempi di interrogazione veloci per rettangolo.
Non mi interessa quanto tempo trascorro nel passaggio di pre-elaborazione. Quello che mi interessa è che dopo aver elaborato i miei dati ottengo una struttura utile che mi dà tempi di interrogazione veloci per rettangolo.
So per esempio che posso contare quanti punti ho in un rettangolo in O (logN). Funziona perché faccio un sacco di elaborazione pesante all'inizio e poi interrogare i dati elaborati con un nuovo rettangolo ogni volta e ottenere un nuovo conteggio in tempo logN. Sto cercando un algoritmo simile per trovare i punti reali e non solo il loro conteggio.
è il rettangolo ruotato? In caso contrario, è solo un semplice controllo AABB: 'if (px> = rect.x && px. <= Rect.x + rect.width) {...}' – Draco18s
Vedi questo post: http://stackoverflow.com/questions/10269179/trovare-rettangoli-che-contiene-punto-algoritmo efficiente – Jaco
Non capisco come lo si propone in tempo LogN. Per N punti dovrai almeno passare attraverso tutti gli N punti una volta. Il meglio che puoi ottenere è O (N). – displayName