Diciamo che abbiamo ... 50k punti assegnati casualmente nello spazio 3D, secondo alcune funzioni volumetriche, in modo che in alcune parti dello spazio i punti siano più vicini, ma in altre parti, sono più lontani. Ogni punto ha un colore casuale (rappresentato da un numero intero, ad esempio)
Vorrei trovare tutti i punti che:
- Sono all'interno di una certa distanza (generale) tra loro e
- sono di colore diverso.
Qual è il modo più veloce per calcolare questo?
Ulteriori dettagli non obbligatori:
Il mio obiettivo finale è rimuovere tutti i punti con lo stesso colore, fino a quando non ci saranno più collisioni. Vorrei rimuovere il minor numero possibile di colori, tuttavia, non è obbligatorio potrei semplicemente rimuovere tutti i colori coinvolti in eventuali collisioni, TUTTO, tuttavia, potrebbe causare un risultato di qualità inferiore.
La distanza non deve essere esatta. Ad esempio, se un "raggio di collisione" esatto rappresenta una sfera perfetta, allora sarei a posto con il raggio di collisione che è la forma di, diciamo, un cubo. Sto anche bene con una soluzione a scatto libero. Cioè, sto bene se i punti vengono "rilevati" anche se non sono troppo vicini. Semplicemente non voglio che questo accada molto spesso, e non posso accettare i punti che devono chiudere non essere rilevati.
Inoltre, sono sicuro che ci sia una famiglia di algoritmi dedicati a questo, ma non posso per la vita di me inventare alcun nome ... Conoscere il nome di un algoritmo di questo tipo sarebbe immensamente utile .