Получение прямоугольников, наиболее удаленных от центрального прямоугольника

#c #boost #boost-geometry

#c #повышение #boost-геометрия

Вопрос:

Как я могу добиться обратного поиска по k-ближайшему, чтобы я мог найти геометрии, наиболее удаленные от заданной центральной геометрии?

Справочная информация: речь идет о кэшировании листов карты. Я хочу удалить ненужные фрагменты, которые находятся далеко от текущего представления.

Комментарии:

1. В геометрии обычно неплохо иметь какой-то абстрактный тип данных для сортировки / поиска геометрий. Например, четырехугольное дерево или bsp / kd-дерево

Ответ №1:

Самые дальние прямоугольники всегда находятся на пределе. Итак, вам нужно получить минимальный охватывающий круг, который определяется тремя экстремальными точками. Тогда наиболее удаленная от любой заданной точки в пределах минимальной окружности является ближайшей к самой удаленной точке на окружности, которая определяется путем проведения луча из рассматриваемой точки через начало координат до тех пор, пока он не достигнет окружности.

Поэтому, если вам нужно много самых удаленных соседей, вы настраиваете структуру, которая помечает каждую дугу минимальной окружности ее ближайшим соседом, тогда вы сможете быстро их найти.

Однако маловероятно, что вы действительно этого хотите. У вас есть интересующий прямоугольник, и теперь просто исключите все, что находится за его пределами.