На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! правила раздела Алгоритмы
1. Помните, что название темы должно хоть как-то отражать ее содержимое (не создавайте темы с заголовком ПОМОГИТЕ, HELP и т.д.). Злоупотребление заглавными буквами в заголовках тем ЗАПРЕЩЕНО.
2. При создании темы постарайтесь, как можно более точно описать проблему, а не ограничиваться общими понятиями и определениями.
3. Приводимые фрагменты исходного кода старайтесь выделять тегами code.../code
4. Помните, чем подробнее Вы опишете свою проблему, тем быстрее получите вразумительный совет
5. Запрещено поднимать неактуальные темы (ПРИМЕР: запрещено отвечать на вопрос из серии "срочно надо", заданный в 2003 году)
6. И не забывайте о кнопочках TRANSLIT и РУССКАЯ КЛАВИАТУРА, если не можете писать в русской раскладке :)
Модераторы: Akina, shadeofgray
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Алгоритм вычисления площади
    Нужен алгоритм  вычисления прлщади фигуры состоящей и з множества пересекающихся прямоугольников.
    Если есть идеи подскажите пожалуйста.
    Сообщение отредактировано: vot -
      формула включений-исключений... дается в дискретке.

      плащадь =
      площади всех прямоугольников
      - площадь пересечений каждый двух прямоугольникво
      + площадь пересечения каждых трех
      - каждых четырех
      + каждых пяти
      ....
      пока не будет использована площадь пересечения всех.

      площадь пересечения n прямоугольников - это площадь общей части этих прямоугольников..
      ЗЫ вопрос более уместен в разделе "алгоритмы"
        A можно поподробнее пожалуйста
          пусть у нас есть три прямоугольника А, В и С.

          площадь , которую они вместе покрывают будет равна
          SA+SB+SC-
          -SAB-SAC-SBC+SABC

          SAB - это площадь общей части прямоугольников А и В.
          -------------------------------
          -    *******                        -
          -    *         *                        -
          -    *S(AB) *                        -
          -    *         *                        -
          ----*------*------------------
              *         *
              *         *
              *******

          А SABC - общей части всех прямоугоьлникв.

          для больше чем 3 обобщить сможешь?

          ЗЫ попробуй все это нарисовать, будет проще:)
          Сообщение отредактировано: Demo_S -
            Ясно, спасибо.
            А другие варианты имеются?
              Метод монтекарло.

              Твоя фигура лежит внутри некоторой области известной площади So. Случайным образом кидаем n точек в эту область. Подсчитываем количество m точек  попавших внутрь фигуры (внутрь хотя бы одного прямоугольника). Площадь твоей фигуры Sf = So * m / n. Чем больше точек, тем точнее результат.
              Сообщение отредактировано: m -
                Метод Монтекарло не устраивает
                Нужен точный результат
                  Можно воспользоваться Апи.
                  Делаем CRgn, пихаем туда все прямоугольники, потом говорим GetRegionData и получаем уже непересекающиеся прямоугольники (имхо). Тупо суммируем их площади, уря.
                    Дело в том что все прямоугольники состоят из типа
                    double.
                    Так что CRgn не подходит
                      Цитата Aleksan, 13.06.03, 13:15:42
                      Метод Монтекарло не устраивает
                      Нужен точный результат

                      Так кинь десять тысяч точек и у тебя будет точность сотые доли процента. Мало? еще добавь.
                      А double все равно будет давать погрешность
                        Дело в том что нужно вычислять это быстро и точно
                          Колличество прямоугольников может доходить до
                          25000 штук
                            Цитата Aleksan, 13.06.03, 16:01:37
                            Колличество прямоугольников может доходить до
                            25000 штук


                            Посмотри здесь: http://algolist.manual.ru/maths/geom/index.php. Может быть, что полезное отыщешь.
                              А как выглядит формула оценки точности вычисления площади по методу Монтекарло?
                                Цитата Demo_S, 13.06.03, 10:57:21
                                пусть у нас есть три прямоугольника А, В и С.

                                площадь , которую они вместе покрывают будет равна
                                SA+SB+SC-
                                -SAB-SAC-SBC+SABC

                                SAB - это площадь общей части прямоугольников А и В.
                                -------------------------------
                                -    *******                        -
                                -    *         *                        -
                                -    *S(AB) *                        -
                                -    *         *                        -
                                ----*------*------------------
                                    *         *
                                    *         *
                                    *******

                                А SABC - общей части всех прямоугоьлникв.

                                для больше чем 3 обобщить сможешь?

                                ЗЫ попробуй все это нарисовать, будет проще:)



                                Пожалуйста если можно напиши обобщенный алгоритм
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0310 ]   [ 15 queries used ]   [ Generated: 27.04.24, 02:14 GMT ]