Утверждение задачи: на графике нанесены N кругов одинакового радиуса от (-) бесконечности до (+) бесконечности. Найдите общую площадь пересечения, т. е. всю площадь на графике, которая покрыта двумя или более кругами.

2
avi 7 Фев 2010 в 09:20
3
Программная часть этого вопроса? Звучит как просто математика для меня. На каком языке вы это делаете?
 – 
Dan McGrath
7 Фев 2010 в 09:21
Если приведенная выше ссылка не работает, пожалуйста, обратитесь к этому: i.imagehost.org/0772/circles. png
 – 
avi
7 Фев 2010 в 09:21
Да, это больше математика. Я делаю это на Си
 – 
avi
7 Фев 2010 в 09:23
Примечание к изображению: i) необходимо рассчитать площадь, выделенную зеленым цветом. ii) все кривые на изображении - круги, а не овалы
 – 
avi
7 Фев 2010 в 09:25
Продолжение Примечание: все круги имеют одинаковый радиус 'r'
 – 
avi
7 Фев 2010 в 09:27

2 ответа

2

Взгляните на Пересечение эллипсов и Площадь пересекающихся эллипсов.

Изменить: пересечение кругов — более простая задача, но в ней используется тот же принцип. Взгляните на Пересечение двух кругов и Пересечение круг-круг.

2
cletus 7 Фев 2010 в 09:32
Извините, мое изображение не идеально... все кривые на изображении представляют собой круги равного радиуса.
 – 
avi
7 Фев 2010 в 09:29
1
Это сложно, потому что вам приходится иметь дело со случаями, когда более 2 перекрываются.
 – 
dmckee --- ex-moderator kitten
14 Фев 2010 в 06:38

Самый простой (не обязательно самый быстрый или «лучший») способ кодирования — найти ограничивающую рамку, содержащую все круги, а затем использовать численный стохастический метод для интегрирования.

Теперь, будучи умным, вы, вероятно, можете группировать круги и размещать их отдельно, то есть работать в нескольких ограничивающих прямоугольниках. И даже точно обрабатывать определенные особые случаи.

Но чисто стохастический метод хорош тем, что его легко реализовать (но потенциально медленно).

Это приемлемо только в том случае, если вас устраивает «приблизительный» (но сколь угодно близкий к правильному) ответ.

1
Michael Anderson 7 Фев 2010 в 10:05
Хорошо, если приемлема грубая или скромная точность. Определенно нужно обнаруживать перекрывающиеся группы и рисовать ограничивающие рамки вокруг каждой группы: в противном случае существует вероятность безумного количества пробелов.
 – 
dmckee --- ex-moderator kitten
14 Фев 2010 в 06:39