2

Предположим, что у вас есть общая форма, определяемая связкой координатных точек, которые образуют что-то похожее на круг, эллипс или общую замкнутую кривую - как вы находите область, ограниченную этими точками?Численное интегрирование области, заданной набором координат?

+0

Возможный дубликат [Как рассчитать площадь поверхности 2-го многоугольника?] (Http://stackoverflow.com/questions/451426/how-do-i-calculate-the-surface-area-of-a -2d-polygon) – DarenW

ответ

3
  1. Найти convex hull из множества точек. Запишите точки на границе.
  2. Вычислить area of the polygon, ограниченный этими пунктами.

Если эти точки не могут определить выпуклый многоугольник, вам нужен concave hull алгоритм на шаге 1.

+0

Мне нравится элегантная идиот-доказательная формула для общей области для многоугольника - что, если вы не найдете выпуклый корпус до применения этой формулы? – ina

+0

@ina: К чему вы хотите обратиться, если вы не нашли корпус? – kennytm

+0

«грубая» область внутри фрактального бурятского острова – ina

0

вы обычно используют интеграцию Монте-Карло или интеграции на сетке для многомерной интеграции. вы можете адаптировать тот же подход и к плоской поверхности.

+0

Хотелось бы, чтобы это было так же просто, как Монте-Карло, но потому, что у вас нет легкой кривой - это набор случайных точек данных, которые примерно образуют непрерывную кривую - это не легко проверить, если что-то ограничено внутри. – ina

+0

Вы можете использовать тест пересечения, чтобы увидеть, находится ли точка внутри или снаружи. Выберите точку вдалеке и свою целевую точку, затем проверьте каждый сегмент контура, чтобы увидеть, пересекается ли сегмент тестовой линии. Если ваш счет пересечения нечетный, вы находитесь внутри, иначе снаружи. (Есть более быстрые тесты, если вы знаете больше о своей форме.) –

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