Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.22.61.246] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Нужен алгоритм вычисления прлщади фигуры состоящей и з множества пересекающихся прямоугольников.
Если есть идеи подскажите пожалуйста. |
Сообщ.
#2
,
|
|
|
формула включений-исключений... дается в дискретке.
плащадь = площади всех прямоугольников - площадь пересечений каждый двух прямоугольникво + площадь пересечения каждых трех - каждых четырех + каждых пяти .... пока не будет использована площадь пересечения всех. площадь пересечения n прямоугольников - это площадь общей части этих прямоугольников.. ЗЫ вопрос более уместен в разделе "алгоритмы" |
Сообщ.
#3
,
|
|
|
A можно поподробнее пожалуйста
|
Сообщ.
#4
,
|
|
|
пусть у нас есть три прямоугольника А, В и С.
площадь , которую они вместе покрывают будет равна SA+SB+SC- -SAB-SAC-SBC+SABC SAB - это площадь общей части прямоугольников А и В. ------------------------------- - ******* - - * * - - *S(AB) * - - * * - ----*------*------------------ * * * * ******* А SABC - общей части всех прямоугоьлникв. для больше чем 3 обобщить сможешь? ЗЫ попробуй все это нарисовать, будет проще:) |
Сообщ.
#5
,
|
|
|
Ясно, спасибо.
А другие варианты имеются? |
Сообщ.
#6
,
|
|
|
Метод монтекарло.
Твоя фигура лежит внутри некоторой области известной площади So. Случайным образом кидаем n точек в эту область. Подсчитываем количество m точек попавших внутрь фигуры (внутрь хотя бы одного прямоугольника). Площадь твоей фигуры Sf = So * m / n. Чем больше точек, тем точнее результат. |
Сообщ.
#7
,
|
|
|
Метод Монтекарло не устраивает
Нужен точный результат |
Сообщ.
#8
,
|
|
|
Можно воспользоваться Апи.
Делаем CRgn, пихаем туда все прямоугольники, потом говорим GetRegionData и получаем уже непересекающиеся прямоугольники (имхо). Тупо суммируем их площади, уря. |
Сообщ.
#9
,
|
|
|
Дело в том что все прямоугольники состоят из типа
double. Так что CRgn не подходит |
Сообщ.
#10
,
|
|
|
Цитата Aleksan, 13.06.03, 13:15:42 Метод Монтекарло не устраивает Нужен точный результат Так кинь десять тысяч точек и у тебя будет точность сотые доли процента. Мало? еще добавь. А double все равно будет давать погрешность |
Сообщ.
#11
,
|
|
|
Дело в том что нужно вычислять это быстро и точно
|
Сообщ.
#12
,
|
|
|
Колличество прямоугольников может доходить до
25000 штук |
Сообщ.
#13
,
|
|
|
Цитата Aleksan, 13.06.03, 16:01:37 Колличество прямоугольников может доходить до 25000 штук Посмотри здесь: http://algolist.manual.ru/maths/geom/index.php. Может быть, что полезное отыщешь. |
Сообщ.
#14
,
|
|
|
А как выглядит формула оценки точности вычисления площади по методу Монтекарло?
|
Сообщ.
#15
,
|
|
|
Цитата Demo_S, 13.06.03, 10:57:21 пусть у нас есть три прямоугольника А, В и С. площадь , которую они вместе покрывают будет равна SA+SB+SC- -SAB-SAC-SBC+SABC SAB - это площадь общей части прямоугольников А и В. ------------------------------- - ******* - - * * - - *S(AB) * - - * * - ----*------*------------------ * * * * ******* А SABC - общей части всех прямоугоьлникв. для больше чем 3 обобщить сможешь? ЗЫ попробуй все это нарисовать, будет проще:) Пожалуйста если можно напиши обобщенный алгоритм |