У меня есть коллекция прямоугольников и ссылочный прямоугольник. Я хочу выяснить, полностью ли скрыт эталонный прямоугольник прямоугольниками над ним (все они в коллекции). Например:
http://i54.tinypic.com/246w57l.png
Очевидное решение состоит в том, чтобы создать матрицу bools или растровое изображение и просто скопировать все прямоугольники и проверить, есть ли что-то, что не покрыто, но это не вариант. Это должно быть сделано много раз в секунду.
Я придумал эту идею: для каждого прямоугольника пересекайте его с любым другим прямоугольником (и ограничивайте их ссылочным прямоугольником), в результате чего получается коллекция меньших прямоугольников, которые не пересекаются, например:
http://i54.tinypic.com/s1j30h.png
Затем просто сложите все их области и вычтите из области контрольного прямоугольника. Однако я не уверен, как именно это сделать лучше всего. Любые другие идеи, предложения или примеры приветствуются.
Спасибо.