Как рассчитать площадь серии случайных точек?

Итак, я работаю над частью кода, чтобы получить данные о положении для RC Plane Crop Duster и вычислить общую пройденную площадь (без двойного подсчета любой площади). Не могу понять, как рассчитать площадь за тот или иной период эксплуатации.

Используя следующую таблицу, рассчитайте площадь покрытия точек.

x,y
1,2
1,5
4,3
6,6
3,4
3,1

Любые идеи? Я просмотрел теорему Грина и остался без практической концепции, в которой можно было бы кодировать.

Спасибо за любой совет


person TelsaBoil    schedule 30.08.2010    source источник


Ответы (6)


  1. Постройте выпуклую оболочку из заданных точек.

    Алгоритмы описаны здесь

    См. очень красивую демонстрацию Python + src

  2. Рассчитайте его площадь

    Код Python находится здесь

person Lior Kogan    schedule 30.08.2010
comment
Это именно то, что я искал. Спасибо за помощь! - person TelsaBoil; 30.08.2010
comment
Популярная библиотека Python под названием scipy.spatial.ConvexHull помогает вычислить выпуклую оболочку с учетом ряда точек. См .: docs.scipy.org /doc/scipy-0.19.0/reference/generated/ - person bing; 01.07.2018

Кто-то более математический, чем я, возможно, должен будет проверить информацию здесь. Но это выглядит нормально: http://www.wikihow.com/Calculate-the-Area-of-a-Polygon и довольно легко применить в коде.

person Angelo R.    schedule 30.08.2010

Я не совсем уверен, что вы ищете «Площадь поверхности» так же, как и расстояние. Похоже, вы хотите рассчитать расстояние между одной точкой и следующей для этого списка. В этом случае просто используйте Формула расстояния.

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

person Dave McClelland    schedule 30.08.2010
comment
Мне очень нравится этот метод, я забыл указать это в описании, у этого метода есть недостаток двойного счета, покрытый дважды. Есть ли простой способ отфильтровать суммы двойного счета? - person TelsaBoil; 30.08.2010
comment
@TelsaBoil - Я не понимал, что двойной учет будет проблемой. Посмотрите ответ Лиора Когана, он кажется очень полезным. - person Dave McClelland; 30.08.2010

Если ваши точки гарантированно находятся в целочисленной сетке - как в вашем примере - (а вы действительно ищете замкнутую область), будет Теорема Пика помочь?

person Chowlett    schedule 30.08.2010

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

Вышеупомянутые моменты относятся к ситуации, когда вы предполагаете, что формируете замкнутый многоугольник с вашими данными.

person ivymike    schedule 30.08.2010
comment
Или, что еще лучше, превратите этот интеграл по площади в контурный интеграл и прогуляйтесь по периметру, используя квадратуру Гаусса. - person duffymo; 30.08.2010

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

person Throwback1986    schedule 30.08.2010