Как найти граничные точки определенной формы - PullRequest
14 голосов
/ 08 февраля 2011

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

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

Ответы [ 2 ]

18 голосов
/ 08 февраля 2011

Вам нужна функция chull() для вычисления выпуклой оболочки двумерного объекта в пакетных устройствах.

Вот пример из онлайн-справки:

require(stats)
X <- matrix(rnorm(2000), ncol = 2)
chull(X)
## Not run: 
# Example usage from graphics package
plot(X, cex = 0.5)
hpts <- chull(X)
hpts <- c(hpts, hpts[1])
lines(X[hpts, ])

enter image description here

2 голосов
/ 18 мая 2012

Эти функции (пакеты) кажутся адекватными:

  • Ахалл ( Альфалл )
  • выпуклый. Корпус (трипак)
  • chull (grDevices)
  • in.chull (сгеостат)
  • convhulln (геометрия)
  • convxhull.xy (spatstat)
  • calcConvexHull (PBSmapping)
...