2015-02-21 4 views
0

enter image description hereПересечения площадь многоугольника и круга

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

Примечание: То, что я пробовал: сначала я пытаюсь решить проблему с алгоритмом литья лучей, где я найду точки в круге, а затем идентифицирую область. Но мне кажется сложнее, поскольку ситуация усложнилась и со сложными тестовыми случаями.

Спецификация входа: центр (x, y) и радиус круга. вершина многоугольника ({x1, y1}, {x2, y2}, {x3, y3} ...).

ОБНОВЛЕНИЕ: Чем больше я думаю, я смущен. действительно ли это можно вычислить?

+0

Страница, на которую вы ссылаетесь, использует JavaScript. Возникает вопрос, как преобразовать код в C++? –

+0

Если вы можете наложить луч в круг, ответ тривиален. Можете ли вы это сделать? – BWG

+0

Ссылка, которую вы даете, дает решение другой проблемы, решение о том, есть ли пересечение или нет. Это то, что вы на самом деле ищете или вы хотите вычислить область, где пересекаются круг и многоугольник? –

ответ

0

Есть два шага. Во-первых, обратите внимание, что эта проблема проста для triangles - так как нет никаких штрихов. Во-вторых, обратите внимание, что вы можете разбить любой N-многоугольник на N треугольников. Это делает ситуацию намного проще.

Любая окружность описывается формулой x^2 + y^2 = r^2. Таким образом, вы можете получить область к оси для любого региона линии посредством интеграции.

Я воспользуюсь этим завтра, я сейчас ухожу.

+0

и алкоголь заставили его забыть заполнить его на следующий день: P – FutureCake

+1

@FutureCake, что он сделал. – will

Смежные вопросы