Тема: Как посчитать площадь произвольной фигуры зная координаты концов линий?

Как посчитать площадь произвольной фигуры зная координаты концов линий. Фигура любой формы. Но состоит только из прямых отрезков и правильных дуг. Для дуг еще известны координаты их середин, координаты центров, радиусы.
Нужен примерный алгоритм. А может кто-то уже с этим сталкивался...

Re: Как посчитать площадь произвольной фигуры зная координаты концов линий?

> brigval
Для линейных сегментов все достаточно просто. Если появляются дуги, то все значительно сложнее. Проще всего дуги апроксимировать и работать только с отрезками.

Re: Как посчитать площадь произвольной фигуры зная координаты концов линий?

> Александр Ривилис
Если для линейных отрезков сделать, то для дуг я сделаю сам: площадь огрничиваемая дугой и отрезком между ее концами считается легко и ее надо будет просто либо добавить либо вычесть из площади ограничиваемой прямыми отрезками.
Как посчитать для линейных отрезков? Но фигура может быть любая. Например, звезда и т.п. Как выпуклая, так и вогнутая или совмещенная. И заранее фигура не известна. Есть только координаты концов отрезков.

Re: Как посчитать площадь произвольной фигуры зная координаты концов линий?

> brigval
Только нужно будет понять следует ее добавлять или вычитать... А алгоритм здесь

Re: Как посчитать площадь произвольной фигуры зная координаты концов линий?

Только нужно будет понять следует ее добавлять или вычитать...

Здесь надо подумать, но я уверен, что этот вопрос решаемый. Например, если средняя точка дуги лежит в области многоугольника, то вычитаем площадь дуги если нет, то прибавляем.
Спасибо за ссылку.

Re: Как посчитать площадь произвольной фигуры зная координаты концов линий?

> brigval
Вопрос в принципе решаемый (у меня когда-то был алгоритм на C++ для подсчета площади полилинии с дугами), но вариантов очень много и я не уверен, что тот мой алгоритм обрабатывал 100% случаев. Многое зависит от направления обхода многоугольника (по- или против- часовой стрелки). Если абсолютная точность не нужна, то на порядок проще аппроксимировать дуги (например бить их на определенное количество сегментов или в зависимости от высоты хорды).

Re: Как посчитать площадь произвольной фигуры зная координаты концов линий?

> Александр Ривилис
Александр, в данном случае, направление обхода известно. Это значит, что можно будет точно сказать куда смотрит дуга: в тело или наружу. Кажется так, если напрвление дуги совпадает с напрвлением обхода, то дуга смотрит наружу и площадь прибавляем, если противопложно, то дуга смотрит внутрь и площадь, ограничиваемую дугой вычитаем.
Cкачл код на VB. Еще не анализировал. Но удивительно. Неужели таким коротким кодом можно посчитать площадь ЛЮБОГО многоугольника, ограниченного прямыми линиями?

Re: Как посчитать площадь произвольной фигуры зная координаты концов линий?

brigval пишет:

Неужели таким коротким кодом можно посчитать площадь ЛЮБОГО многоугольника, ограниченного прямыми линиями?

Да. Это универсальный алгоритм, работающий с любыми несамопересекающимися многоугольниками.

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

Пробуй. У меня это получилось совсем не однозначно. И средняя точка дуги еще не определяет снаружи дуга или внутри - все может быть значительно сложнее.

Re: Как посчитать площадь произвольной фигуры зная координаты концов линий?

Александр Ривилис пишет:

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

Для меня здесь все ясно. По средней точке мы определим направление движения дуги ко второму концу (по часовой стрелке или против). Остальное - как я уже написал.
Еще раз спасибо за помощь.