Общая постановка проблемы:
Механизм выбора формы на холсте
Данный:
Произвольные выпуклые формы на 2D-плоскости. (скажем, восстановлено с помощью std::vector ‹ IShape* >, у IShape есть член getBBox())
Вопрос:
Найти и вернуть коллекцию/подмножество фигур, которые находятся в заданной прямоугольной области.
(в этом конкретном примере должны возвращаться формы A и B )
Я знаю эту типичную проблему поиска диапазона/запроса диапазона, однако «классические» примеры относятся к поиску точек в заданном регионе, чтобы проиллюстрировать, как можно использовать kdtree для решения проблемы.
Я не могу понять, как «расширить» алгоритм для работы с фигурами. Я больше ищу идею, чем точную реализацию.
(Я не рассматриваю тривиальный цикл по каждой фигуре, чтобы увидеть, находится ли она в заданной области или за ее пределами)