J'ai un polygone dont les sommets sont les points centraux des 4 autres polygones. Pour ces 4 polygones j'ai aussi les coordonnées de leurs sommets. Je voudrais déterminer pour chaque "polygone d'angle" le sommet qui, s'il était choisi comme sommet du plus grand polygone, maximiserait sa surface. Le polygone est un rectangle auquel on a appliqué une transformation de perspective, donc je pensais que c'était un trapèze.Déterminez les points qui maximisent la surface d'un polygone s'il est choisi comme sommets.
I ont essayé le calcul d'un centre brut en additionnant les (x, y) s des coins et la plongée par 4. Je puis choisi chaque sommet sur la base de celui qui avait distance la plus éloignée à partir de ce point central parmi ses pairs. (quelque chose comme distance = (Xc - X)^2 + (Yc - Y)^2
, j'ai évité l'enracinement carré du résultat à des fins de performance).
Malheureusement, cela ne donne pas les résultats escomptés. Habituellement, un seul sommet est remplacé par le sommet le plus extérieur du «polygone d'angle», tandis que les autres sont remplacés par l'un des deux autres sommets du «polygone d'angle», à l'exclusion du plus proche.
Qu'est-ce qui pourrait être un moyen de créer un meilleur algorithme?
L'approche décrite devrait donner un résultat correct dans la plupart des cas non dégénérés. Peut-être que les erreurs de mise en œuvre entraînent des erreurs de détermination – MBo
Si vous voulez dire que le vertex a la plus grande distance entre les quatre sommets d'un polygone de coin, c'est certainement un mauvais choix, car le polygone peut librement tourner sans changer la sélection et il n'y a aucune influence des autres coins. –