Mentre non puoi evitare di dover controllare ogni punto, ci sono tecniche che puoi usare per controllare velocemente o controllare solo una volta.
Ad esempio, la maggior parte dei punti si può dire se sono troppo lontani senza calcolare la distanza esatta. Ad esempio, se ho un punto il cui componente x è 100 lontano dal punto di riferimento, non è necessario calcolare la distanza. Sai già che il punto è troppo lontano. Allo stesso modo se i delta xey sono inferiori a 5 * 2 * sqrt (2) di distanza dal punto di riferimento, sai che sono abbastanza vicini. Vedi lo schema seguente per un esempio visivo:
Se P è il tuo punto di origine e il cerchio rappresenta il punto più distante che un punto può essere dal punto P (nel tuo caso il raggio di 5 unità), allora A e C rappresentano i punti in cui i punti sono decisamente fuori o definitivamente dentro. Pertanto, è possibile ottimizzare il proprio algoritmo controllando i delta x e y. Solo i punti che si trovano nell'area grigia B devono calcolare la loro distanza perché non si può sapere senza eseguire un calcolo più sofisticato.
Inoltre, non sarebbe male per ordinare i tuoi punti per distanza a P. Se devi eseguire questo calcolo spesso, puoi ottimizzare il calcolo ordinando una volta, quindi trovare il punto più lontano entro 5 unità da P. A meno che le posizioni dei punti cambino , sai che tutti i punti dopo quel punto devono essere più vicini.
Spero che ti aiuti!