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


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Anatoly Saveliev                     2:5020/400     29 May 2001  17:13:38
 To : All
 Subject : Re: Определение площади фигуры
 -------------------------------------------------------------------------------- 
 
 Fyodor Korzhov wrote:
 
 > Как поживаете, All ?
 >
 > 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емя очень велико.
 >
 > Интеpесyет все: алгоpитмы, идеи, домыслы...
 >
 >                 Желаем всех-с, Fyodor Korzhov.
 
 1. Берем для каждого круга охватывающий прямоугольник (точнее квадрат)
 2. Сортируем квадраты лексикографически по лувому нижнему углу (если круги
 разбросаны равномерно, при 5000 объектов достаточно сортировки по X)
 3. Для каждого круга находим сначала потенциальных "пересеченцев" (по квадратам,
 сначала дихотомический поиск первого, потом просмотр списка, пока не вылезем за
 границу своего квадрата), затем реальных. Сохраняем факт пересечения и его
 площадь
 в списке.
 4. Рассматривая список как ребра графа, определяем его компоненты связности
 (алгоритм есть в Кнуте и Ахо, Ульмане).
 5. Идем по компоненте связности, складывая площади кругов и вычитая пересечения.
 
 При равномерном распределении кругов время поиска "пересеченцев" почти константа
 (по нашему опыту), общее время О(N)log(N) за счет сортировки (компонеты
 связности
 определяются за линейное время при наличии дополнительного массива их индексов,
 определение площади линейна относительно числа кругов и пересечений)
 
 Анатолий Савельев
 
 Казанский университет
 
 --- ifmail v.2.15dev5
  * Origin: Kazan State University (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 Re: Определение площади фигуры   Anatoly Saveliev   29 May 2001 17:13:38 
 Определение площади фигуры   Alex Cvetkov   30 May 2001 12:40:56 
 Определение площади фигуры   Alexei Frounze   31 May 2001 09:23:23 
 Определение площади фигуры   Fyodor Korzhov   01 Jun 2001 00:36:05 
 Определение площади фигуры   Dan Raskovalov   31 May 2001 13:58:13 
 Определение площади фигуры   Alex Cvetkov   03 Jun 2001 01:09:32 
 Определение площади фигуры   Dan Raskovalov   04 Jun 2001 04:11:14 
Архивное /ru.algorithms/152843617807.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional