Я создал функцию, которая перебирает список двумерных ограничивающих рамок и находит те, которые содержат заданную двумерную точку. К сожалению, это довольно медленно, поэтому я искал способ оптимизировать его, используя какую-то древовидную структуру.
Я видел много вопросов, основанных на поиске точек внутри блоков, но ни одного для поиска блоков из точки. Я знаю, как сделать пересечение, поэтому меня интересует только древовидная структура. Я думал, что дерево квадрантов может подойти, но я не уверен, как оно справится с дублированием ограничивающих рамок в разных узлах.
Было бы лучше использовать какое-то двоичное дерево поиска, в котором я рекурсивно разделяю оси x и y (например, срединный разрез)?