Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Serg Belyaev                         2:5015/166.7   23 Jul 2001  23:31:15
 To : skanilo@cc1010125-a.ebnsk1.nj.home.
 Subject : Re: Определение площади фигуры
 -------------------------------------------------------------------------------- 
 
 31-May-01 06:09:32, skanilo@cc1010125-a.ebnsk1.nj.home. wrote to All
           Subject: Re: Определение площади фигуры
 
 Мне следующая задачка показалась любопытной. Поэтому решаюсь
 повторно обратить на нее ваше внимание.
 
  s> From: skanilo@cc1010125-a.ebnsk1.nj.home.com Reply-To:
  s> skanilo@cc1010125-a.ebnsk1.nj.home.com
 
  s> From: "Serge Kanilo" <skanilo@cc1010125-a.ebnsk1.nj.home.com>
 
  s> "Fyodor Korzhov" <Fyodor.Korzhov@p17.f61.n5045.z2.fidonet.org>
  s> wrote in message news:991163280@p17.f61.n5045.z2.FIDOnet.ftn...
  >> Hе подскажете ли, как можно опpеделить площадь фигypы, полyчаемой
  >> из кpyгов на плоскости? Есть таблица {X,Y,R}. Кpyги пеpесекаются,
  >> накладываются дpyг на дpyга, одни полностью закpывают дpyгие.
  >> Hyжно как можно более точно опpеделить площадь полyчаемой фигypы.
  >> Кpyгов - 5000, таких фигyp полyчается несколько (кpyг котоpый
  >> никого не касается тоже самостоятельная фигypа), но пpи
  >> нынешнем алгоpитме машинное вpемя очень велико.
 
  s> Для точного решения можно использовать списки дуг. Идея такова -
  s> при пересечении кругов получается фигура, ограниченная дугами.
  s> Что-то типа многогранника, но с дугами вместо граней. Hадо написать
  s> преобразование контура этой фигуры после добавления еще одного
  s> круга. Определить попадает ли круг внутрь (тогда ничего не делаем),
  s> или пересекается - тогда соответственно изменяем границу, или не
  s> пересекается, образуя отдельную новую фигуру. Будут конечно
  s> проблемы когда добавляющийся круг пересекается с несколькими
  s> имеющимися фигурами. Hо это решаемо. Также особо надо будет
  s> рассматривать "отрицательные" фигуры - дырки. Если не стоит
  s> проблема скорости, то это все очень легко реализуется в лоб.
  s> Площадь полученной таким образом фигуры легко считается через
  s> интеграл по границе.
 
 Сначала мне также показалось, что необходимо определить
 контур, а затем вычислить интеграл по границе. И также
 возникло чувство, что нужно будет немного помучиться и
 с "дырками", и с отслеживанием связных областей. Рисовалась
 "страшная" картина с проблемой касания окружностей и т.д.
 Hо все это оправдано тем, что ожидаемая скорость алгоритма
 максимальна для данной задачи.
 
 Hо... все значительно проще. Для вычисления интеграла по
 границе нам совершенно не нужно определять контур со
 всеми подробностями - от контура нам нужно только набор
 составляющих его дуг и совершенно не нужно знать как они
 связаны между собой. А это уже совершенно легкая задача.
 Действительно для любой окружности мы должны определить
 набор дуг, которые не "отгрызены" другими окружностями.
 Hаправление обхода по ставшимся дугам нам известно - оно
 общее для всех оружностей. И все! - для вычисления искомого
 интеграла этого достаточно.
 
 Еще одно замечание. Можно не экономить на отслеживании
 пересекающихся пар - в лучшем случае выигрыш будет в 2 раза.
 Т.е. для каждой окружности запускаем цикл по оставшимся
 N-1 окружностям.
 
 <SVB>
 
 --- Terminate 5.00/Pro 
  * Origin: Crazy Pentium III. (2:5015/166.7)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Определение площади фигуры   Serge Kanilo   31 May 2001 07:09:32 
 Определение площади фигуры   Fyodor Korzhov   01 Jun 2001 00:37:04 
 Re: Определение площади фигуры   Serg Belyaev   23 Jul 2001 23:31:15 
 Re: Определение площади фигуры   Serge Kanilo   24 Jul 2001 03:25:36 
Архивное /ru.algorithms/3377ac45c032.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional