You could overlay a logical grid over your plane. If a grid has a certain number of contained dots, it is considered "dense" and could then be thinned. This is done a lot in GIS applications when working with cluster tolerances. Using the grid helps compartmentalize your thinning algorithm.