Procurando por um algoritmo não "de força bruta" para remover áreas de interseção de uma coleção de Rects
Tenho uma coleção de Rects em tamanho n, a maioria das quais se cruzam. Gostaria de remover as interseções e reduzir as rects que se cruzam em rects menores que não se cruzam.
Eu poderia facilmente forçar uma solução bruta, mas estou procurando um algoritmo eficient
Aqui está uma visualização:
Original
Processado
Ideally, a assinatura do método ficaria assim:
public static List<RectF> resolveIntersection(List<RectF> rects);
a saída seria maior ou igual à entrada, onde a saída resolve a representação visual acim