При поиске в Интернете решения для поиска центроидов многоугольников появляются довольно часто. Что меня интересует, так это нахождение центроида группы точек. Взвешенное среднее сорта. Я был бы признателен, если бы кто-то мог предоставить некоторые указатели, псевдокод (или, что еще лучше, пакет R, который уже решил эту проблему) или ссылки о том, как можно решить эту проблему.
РЕДАКТИРОВАТЬ
Конвергенция была в движении (снова). Iant предложил метод усреднения координат и использовать его для центроида. Это именно то, что пришло мне в голову, когда я увидел правильную картинку на этой веб-странице .
Вот некоторый простой R-код для рисования следующего рисунка, демонстрирующего это (× - центроид):
xcor <- rchisq(10, 3, 2)
ycor <- runif(10, min = 1, max = 100)
mx <- mean(xcor)
my <- mean(ycor)
plot(xcor, ycor, pch = 1)
points(mx, my, pch = 3)
РЕДАКТИРОВАТЬ 2
cluster::pam()$medoids
возвращает medoid из набора кластеров. Это пример бесстыдно украденного у @Joris Meys:
library(cluster)
df <- data.frame(X = rnorm(100, 0), Y = rpois(100, 2))
plot(df$X, df$Y)
points(pam(df, 1)$medoids, pch = 16, col = "red")
Ответы:
просто усредните координаты X и Y (умножьте на вес, если хотите), и ваш центр тяжести окажется.
источник
Вы можете использовать функцию центроида из пакета геосфера.
https://www.rdocumentation.org/packages/geosphere/versions/1.5-5/topics/centroid
источник