Je voudrais m'excuser auprès de tous les articles ci-dessous. Vous avez choisi le mauvais forum pour publier cela à l'origine. Cependant, plutôt que d'en faire un gaspillage complet, j'ai retravaillé la question pour qu'elle soit un véritable problème "d'informatique théorique".
Problème: Créez un algorithme qui prend un ensemble de n points ordonnés dans un plan 2D qui forment le contour d'un simple polygone A qui peut être concave ou non et crée un nouveau polygone B avec m points tels que:
- tous les points de A sont contenus dans B
- 3 <= m <n
- B est le polygone dans l'ensemble de tous les B avec la plus petite surface
- B doit être un simple polygone (c'est-à-dire sans auto-intersection).
- L'entrée de l'algorithme est le polygone A et "m".
- La coïncidence des segments en B avec des segments en A est autorisée.
Quelques exemples d'entrées et de sorties attendues:
- Si A est un carré et m est 3 alors B serait le triangle avec la plus petite surface qui contient A.
- Si A est un hexagone et m est 4 alors B serait un quadrilatère avec la plus petite surface qui contient A.
Bonne chance à tous ceux qui tentent de résoudre ce problème. Je peux vous promettre que ce sera très difficile, surtout maintenant que la solution doit être optimale.
ds.algorithms
cg.comp-geom
polygon
Thirlan
la source
la source
Réponses:
Je ne sais pas à quoi ressemblent vos polygones, mais peut-être qu'une version simplifiée de l' algorithme Ramer – Douglas – Peucker suffit:
Pour les algorithmes plus complexes, vous pouvez rechercher des " techniques de généralisation de polygones " bien que votre première condition (les points dans A sont contenus dans B) implique des opérations de mise à l'échelle supplémentaires.
la source
Il y a longtemps, j'ai écrit un article qui détaillait un algorithme à temps linéaire pour trouver le triangle de plus petite surface entourant un ensemble de points (ou un polygone):
Notre travail a été suivi d'un algorithme général:
Vous pouvez utiliser Google Scholar pour suivre les articles ultérieurs qui les citent pour trouver des améliorations et des travaux connexes.
la source