Vous pourriez vouloir trouver la coque convexe de tous les points de votre polygone. Un algorithme pour faire ceci est Graham-Scan avec la complexité O (nlgn). De Cormen:
Let Q be the set of all points in your polygon
Graham-Scan(Q)
1 let p0 be the point in q with the minimum y-coordinate or the leftmost in case of tie
2 let (p1, p2,...,pm) be the remaining points in Q, sorted by polar angle around p0
if more than one point shares the same polar angle, keep the farthest point
3 let S be an empty stack
4 PUSH(p0, S)
5 PUSH(p1, S)
6 PUSH(p2, S)
7 for i = 3 to m
8 while the angle formed by points NEXT_TO_TOP(S), TOP(S), and pi makes a non-left turn
9 POP(S)
10 PUSH(pi, S)
11 return S
S contient maintenant tous les points externes de votre polygone. Vous devrez faire des calculs polaires, mais c'est assez simple. Pour trier par ordre polaire, trier tous les points sur leur cotangente avec le point le plus bas. J'oublie le code pour vérifier un virage à droite, mais c'est sur Internet si vous cherchez juste pour Graham-Scan. J'espère que cela t'aides!
Ces points limites sont-ils pris en compte dans un ordre particulier? Ou êtes-vous juste remis un sac d'entre eux et dit «faire le polygone»? – Novelocrat