Я хочу определить, перекрываются ли произвольно повернутые текстовые экземпляры.
Используя описанную методику ЗДЕСЬ, я могу получить выровненный по оси ограничивающий прямоугольник (AABB) экземпляра Text. Если текст выровнен по оси, то этот AABB очень плотно прилегает к фактическому тексту. Но как только вы начинаете вращать текст, область, покрытая AABB, становится намного больше, чем фактическая область, занимаемая текстом:
Таким образом, AABB - не очень точный способ обнаружения перекрытия повернутого текста.
Вот как я могу это представить:
- Для каждого экземпляра текста t используйте AABB для вычисления набора из 4 точек, определяющих произвольно ориентированную ограничивающую рамку (OBB) B_t, которая плотно содержит текст.
- Test each t for intersection with each other with 2 steps:
- First, do their AABBs intersect?
- В таком случае используйте теорему о разделении осей, чтобы определить, пересекаются ли их OBB.
Является ли описанный выше процесс хорошим подходом или есть лучший способ сделать это, используя некоторые функции, уже существующие в Matplotlib?