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