Поиск алгоритма без «грубой силы» для удаления пересекающихся областей коллекции Rects
У меня есть коллекция Rects размера n, большинство из которых пересекаются. Я хотел бы удалить пересечения и сократить пересекающиеся Rects в меньшие непересекающиеся rects.
Я мог бы легко перебрать решение, но я ищу эффективный алгоритм.
Вот визуализация:
Оригинал:
Обработанный:
В идеале подпись метода должна выглядеть так:
public static List<RectF> resolveIntersection(List<RectF> rects);
выходной сигнал будет больше или равен входному значению, где выходной сигнал разрешает приведенное выше визуальное представление.