2010-12-10 23 views
2

J'ai une forme arbitraire, dessinée par l'utilisateur sur une toile, et je voudrais calculer le polygone le mieux ajusté à partir de cette forme étant donné le nombre des côtés ou des bords que le polygone de sortie devrait avoir. Plus précisément, je voudrais une fonction avec la signature suivante:Calcul du meilleur polygone à partir de la forme donnée nombre de côtés cibles (ou arêtes)

polygon computePolygon(Shape shape, int numberOfSides) 
{ 
    ... 
    return polygon; // return polygon with numberOfSides sides 
} 

Par exemple, disons que je veux obtenir un quadrilatérale de la forme dessinée par l'utilisateur (par exemple un GeneralPath), alors je saisirez computePolygon (GeneralPath , 4).

Comment procéder?

Répondre

1

This paper may help you.

Référence: un algorithme génétique hybride pour deux types de problèmes polygonal Approximation, Wang Bin et Chaojian Shi

+0

Merci pour cela. Je vois que ce problème est appelé "problème min-ε" ou "problème de distorsion minimale" dans l'approximation polygonale. Les algorithmes proposés dans la littérature scientifique semblent cependant assez complexes. Je cherche quelque chose de facile à mettre en place, si possible. Cela ne doit pas nécessairement être optimal. – Tamori