Самые дальние прямоугольники всегда находятся на пределе. Поэтому вам нужно получить минимальный замкнутый круг, который определяется тремя экстремальными точками. Самая далекая от любой точки в пределах минимальной окружной окружности - это ближайшая к самой далекой точке на круге, которую можно найти, взяв луч от рассматриваемой точки через начало координат до тех пор, пока она не достигнет окружности.
Итак, если вам нужно много самых отдаленных соседей, вы создадите структуру, которая привязывает каждую дугу минимального окружного круга к ближайшему соседу, и вы можете быстро найти их.
Однако маловероятно, что вы действительно этого хотите. У вас есть прямоугольник, представляющий интерес, и теперь просто исключайте все за его пределами.
В геометрии обычно удобно иметь какой-то абстрактный тип данных для сортировки/поиска геометрии. Например, четырехъядерное дерево или дерево bsp/kd – zahir