2016-10-02 4 views
0

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

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

+0

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

ответ

1

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

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

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

Смежные вопросы