Si les points ne sont pas commandés, c'est impossible sans déterminer le bon ordre. C'est parce que s'il y a plus de 3 points, il y a plus d'un polygone qu'ils pourraient former.
Je ne suis pas entièrement sûr que la contrainte que les points forment un polygone convexe soit suffisante pour déterminer une forme canonique à partir du nuage de points.
Je suppose que cela en prenant un point aléatoire de la liste, puis en recherchant le le plus proche le point restant, vous pouvez construire un ordre canonique. De là, il suffit de résumer la longueur des lignes formées par des points consécutifs.
Modifier: À la réflexion, grattez cette idée. Cela ne marchera pas dans tous les cas. Cela vous laisse permuter les points et vérifier si le polygone formé est bien convexe.
La question sur la façon de vérifier si un polygone est convexe a été posée et répondue ici: How do determine if a polygon is complex/convex/nonconvex?
Vous pouvez convertir des points dans une nouvelle classe de LineSegments, puis additionnez la longueur des segments de ligne. Si les points sont hors service, vous pouvez construire une matrice pour déterminer qui est connecté entre eux, et si vous avez un polygone complet. –
Quelle serait la bonne méthode pour trouver les paires de points autour du polygone? Comment dois-je commander la liste? – makesz1
Tous les points sont-ils utilisés dans la création de ce polygone? –