Как правильно рассчетать общую площадь нескольких прямоугольников разного размера?

8 года назад от Doby_MaRLey

1 ответ

0 голосов
Зависит от того, пересекаются ли эти прямоугольники или нет. Если же ко всему прочему эти прямоугольники произвольно "ориентированы" на плоскости, то задача усложняется еще больше.

В целом алгоритм простой:
1) Находим сумму площадей прямоугольников (S0)
2) Находим сумму площадей попарных пересечений прямоугольников (S1)
3) Находим сумму площадей попарных пересечений фигур из п. 2 (S2) и т. д.
Ответом будет сумма: S0 - S1 + S2 - S3 + .

Либо можно поступить просто. Если прямоугольники расположены достаточно "компактно", то можно найти вмещающий их прямоугольник, в нем случайным образом накидать N точек, из этого множества выделить n точек, попавших внутрь какого-нибудь из интересующих нас прямоугольников, и полученное отношение n/N даст оценку площади (метод Монте-Карло) .

Либо можно избавиться от вероятностного характера оценки из предыдущего пункта, введя на вмещающем прямоугольнике дискретную двумерную сетку с шагом h, и подсчитав количество узлов сетки, попавших внутрь рассматриваемых прямоугольников. Но вычислительная сложность этого алгоритма будет O (1/h) ^2) .
8 года назад от †KiRA†

Связанные вопросы