résoudre des systèmes d'équations linéaires pour chaque paire de lignes
y = m[i] * x + b[i]
y = m[j] * x + b[j]
où m [i], b [i] sont les coefficients de i-ième ligne et obtenir (x, y) pour intersection.
S'il y a exactement 6 intersections (pas de lignes parallèles, pas de dégénérescence), alors chaque ligne a trois points d'intersection dans la rangée. Deux intersections sont "externe" et une (moyenne) est "intérieure", donc il y a trois points internes et trois externes.
Il semble que le quadrilatère convexe contienne toujours tous les trois points internes, de sorte que nous pouvons séparer les points internes et obtenir le quatrième point correspondant.
Par exemple, si les lignes sont désignées par A, B, C, D, et les intersections AB, AC, CD sont interne, puis quatrième point est intersection BD (B et D sont uniques dans la liste d'intersection)
PS Notez que le formulaire d'équation de ligne y=mx+b
ne convient pas pour toutes les lignes possibles (pas pour les lignes verticales), il est donc préférable d'utiliser more general form comme A*x + B*y + C = 0
ou autre.
Je sais comment trouver le point d'intersection, pouvez-vous donner des détails sur « sommets Ensuite sorte calculées par l'angle polaire de sommet choisi arbitraire. », Dispose également de 6 points d'intersection, comment puis-je savoir que de choisir – Alvar
Ugh, j'ai supposé que les angles polaires uniques du point bas gauche à votre image sont pour les sommets nécessaires en utilisant le plus proche quand l'angle est le même, mais je vois que cela ne fonctionne pas pour le sommet de base arbitraire – MBo