Каждый полигон имеет как минимум четыре отдельных "центра":
Барицентр его вершин.
Барицентр его краев.
Его барицентр как многоугольник.
ГИС-специфический «центр», полезный для маркировки (обычно рассчитывается с использованием недокументированных проприетарных методов).
(Они могут случайно совпадать в особых случаях, но для «общих» многоугольников это разные точки.)
«Барицентр» в целом - это «центр масс». Три типа различаются в зависимости от того, где предположительно расположена масса: она либо полностью находится на вершинах, либо равномерно распределена по краям, либо равномерно распределена по всему многоугольнику.
Существуют простые методы для вычисления всех трех барицентров. Один из подходов основан на том факте, что барицентр несвязанного объединения двух масс является средневзвешенным значением барицентров. Из этого легко получить следующее:
Барицентр двух (одинаково взвешенных) вершин является их средним. Это получается путем усреднения их координат отдельно. Геометрически это середина отрезка, соединяющего две вершины.
Индуктивно барицентр из n (одинаково взвешенных) вершин получается путем усреднения их координат отдельно.
Барицентр отрезка является его серединой. (Это ясно по симметрии.)
Барицентр ломаной линии получается путем нахождения средних точек каждого отрезка линии и последующего формирования их средневзвешенного значения, используя длины отрезков в качестве весов.
Например, рассмотрим форму «L», очерченную точками (0,0), (6,0), (6,12). Есть два сегмента: один длиной 6 со средней точкой в ((0 + 0) / 2, (0 + 6) / 2) = (3,0) и другой длиной 12 со средней точкой в ((6 + 6) / 2, (0 + 12) / 2) = (6,6). Их средневзвешенные по длине координаты, следовательно, (x, y) с
x = (6*3 + 12*6) / (6+12) = 5, y = (6*0 + 12*6) / (6+12) = 4.
Это отличается от барицентра трех вершин, который ((0 + 6 + 6) / 3, (0 + 0 + 12) / 3) = (4,4).
( Изменить В качестве другого примера рассмотрим фигуру в вопросе, которая хотя и имеет квадратную форму, представлена в виде пятиугольника, определяемого последовательностью точек (0,0), (1 / 2,0), (1,0), (1,1), (0,1). Пять сторон имеют длины 1/2, 1/2, 1, 1, 1 и средние точки (1 / 4,0), (3 / 4,0), (1 , 1/2), (1 / 2,1) и (0,1 / 2) соответственно, поэтому их средневзвешенное значение равно
[(1/2)*(1/4, 0) + (1/2)*(3/4, 0) + (1)*(1, 1/2) + (1)*(1/2, 1) + (1)*(0, 1/2)] / (1/2+1/2+1+1+1)
= (2/4, 2/4) = (0.5, 0.5)
как можно было бы надеяться, даже если барицентр одной вершины (вычисленный как в # 2 выше) равен (0,5, 0,4).)
Барицентр многоугольника можно получить триангуляцией, чтобы разложить его на треугольники. Барицентр треугольника-ква-многоугольника совпадает с барицентром его вершин. Взвешенное по площади среднее значение этих барицентров является барицентром многоугольника. Площади треугольников легко вычисляются по их координатам вершин (например, по произведению клина двух сторон). Для иллюстрации таких вычислений области, включая способы использования подписанных (положительных или отрицательных) областей, см. Раздел «Область» на моей (старой) странице примечаний к курсу .
( Правка. Рассмотрим, например, многоугольник, изображенный в вопросе. Мы можем триангулировать его треугольниками ((0,0), (1 / 2,0), (0,1)) слева, ((0,1), (1 / 2,0), (1,1)) посередине и ((1,1), (1,0), (1 / 2,0)) справа. Их площади составляют 1/4 , 1/2, 1/4 соответственно и их барицентры - полученные путем усреднения их вершин - (1 / 6,1 / 3), (1 / 2,2 / 3) и (5 / 6,1 / 3), соответственно. Средневзвешенная площадь этих барицентров равна
[(1/4)*(1/6,1/3) + (1/2)*(1/2,2/3) + (1/4)*(5/6,1/3)] / (1/4 + 1/2 + 1/4)
= (12/24, 6/12)
= (0.5, 0.5)
как следует, несмотря на наличие этой пятой вершины вдоль нижнего края.)
Очевидно, что каждый из этих методов эффективен : он требует всего одного прохода для представления многоугольника «спагетти», используя (довольно небольшое) постоянное время на каждом шаге. Обратите внимание, что во всех случаях, кроме первого (из чистых вершин), требуется больше информации, чем просто список координат вершин: вам также необходимо знать топологию фигуры. В примере «L» нам нужно было знать, что (0,0) связано, например, с (6,0), а не с (6,12).
Это все евклидовы понятия. Они могут быть расширены до сферы (или эллипсоида) несколькими способами. Прямой рассматривает объекты как симплициальный комплекс в трех (евклидовых) измерениях, вычисляет соответствующий барицентр, а затем проецирует его наружу из центра эллипсоида обратно на поверхность. Это не требует новых понятий или формул; вам нужно работать только с третьей (z) координатой в дополнение к первым двум координатам. (Области все еще найдены, используя длины продуктов клина.)
Другое обобщение признает, что евклидова метрика - квадратный корень из суммы квадратов, согласно Пифагору - может быть изменена на другие метрики Lp для p> = 1: вы берете корень pth от суммы степеней pth. Найти подходящие «барицентры» уже не так просто, потому что красивые аддитивные свойства, использованные выше (барицентры - это средневзвешенные значения барицентров более простых частей фигуры), в общем, больше не действуют. Часто итерационные приближенные численные решения должны быть получены. Они могут даже не быть уникальными.
Дополнительные центры могут быть определены для различных целей. Треугольники имеют много различных центров, которые могут обобщаться (в некоторой степени) на многоугольники: центр окружности, центр (некоторого) максимального окружности, центр эллипса, ограничивающего минимальную площадь, и другие. Любой набор может быть заключен в различные «оболочки», такие как выпуклая оболочка и центры полученных оболочек.
Обратите внимание, что многие из этих «центров» не обязательно расположены внутри многоугольника. (Любой разумный центр выпуклого многоугольника будет лежать внутри его.)
Это разнообразие подходов и решений указывает на то, что следует опасаться общего термина, такого как «центр геометрии» или просто «центр»: это может быть что угодно.