Я хотел бы создать динамическую структуру данных, которая может содержать список полигонов и возвращать список полигонов, которые перекрывают указанный прямоугольник.Перекрытие многоугольников на 2D-плоскости
Я смотрел в деревья bst (и квадроциклы), но они не работают слишком хорошо, когда многоугольники сильно перекрываются.
Любые хорошие идеи, которые я должен проверить, прежде чем я скачу свою собственную чепуху?
редактировать
позволяет предположить, что все многоугольники нормальные не являющиеся повернутые прямоугольники. im, желающий принять удар (точка в полигоне) во время точечных тестов (возможно, я все равно это сделаю), и во время областного теста получение их ограничивающих прямоугольников так же хорошо. только небольшой процент из них фактически не будет перекрывать рассматриваемый регион.
Это немного более интенсивное, чем я искал. это также написано на каком-то академическом диалекте, что у меня проблемы с пониманием. я собираюсь отредактировать вопрос, надеюсь, больше людей кусают. – aepurniet
Я обновил его. CGAL имеет более общие процедуры обработки полигонов. Вероятно, вам лучше использовать запрограммированные подпрограммы, потому что в геометрии угловые случаи убьют вас. – deinst
http://www.cgal.org/Manual/latest/doc_html/cgal_manual/Point_set_2/Chapter_main.html показалось более точным с тем, что мне нужно делать, но оно работает только с множествами точек, не может найти ничего, что работает на прямоугольники или многоугольники. эта библиотека, безусловно, действительно крутая ссылка. – aepurniet