2011-02-08 1 views
14

Supposons que j'ai une forme irrégulière, aléatoire, générée à partir d'un ensemble de données. Comment puis-je trouver des points situés sur la bordure de la forme?Comment trouver les points de bordure d'une forme particulière

J'utilise R. Y a-t-il des paquets dans R à cet effet? Pour simplifier, supposons simplement que j'ai un jeu de données 2d de points.

+3

A (http [enveloppe convexe]: //en.wikipedia .org/wiki/Convex_hull) est le terme technique pour la "frontière" de votre ensemble de données. L'utilisation de "coque convexe" lors de la recherche peut aider à générer de bons résultats. – Sharpie

+2

Notez que vous n'avez pas accepté de réponse à vos questions. Veuillez le faire en cliquant sur le signe V à gauche. Cela récompensera les personnes qui ont été si généreuses de vous répondre, et dire aux autres visiteurs que la réponse a été utile. Voir aussi la FAQ –

Répondre

18

Vous recherchez la fonction chull() pour calculer la coque convexe d'un objet 2D, dans le paquet grdevices.

Voici l'exemple de l'aide en ligne:

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

+1

impressionnant bon taux de réponse, Andrie! –

2

Ces fonctions (paquets) semblent adéquats:

  • ahull (alphahull)
  • convex.hull (tripack)
  • chull (grDevices)
  • in.chull (sgeostat)
  • convhulln (géométrie)
  • convexhull.xy (spatstat)
  • calcConvexHull (PBSmapping)
Questions connexes