Bonjour à tous,
Je viens de terminer la première étape d'un gros projet.
Cette étape consiste à prendre une image bitmap en 8 couleurs, contenant toute sortes de formes et de textes dans chacune des 8 couleurs, pour obtenir une image vectorielle composée de polygones simples.
L'image vectorielle est structurée sous forme de 8 "forêts de polygones", une forêt par couleur.
Une "forêt" est une liste de polygones, chaque polygone contenant lui-même la liste des polygones qui sont à l'intérieur de lui.
Il y a deux types de polygones : les "extérieurs" et les "intérieurs" : Les premiers "arbres" de la forêt (niveau 0 de l'arborescence) sont des polygones "extérieurs", c'est à dire que l'intérieur de ces polygones est de la couleur.les polygones contenus dans ces polygones "extérieurs" sont des polygones "intérieurs", c'est à dire que l'intérieur de ces polygones est du vide.
Voici une petite illustration pour comprendre ce concept de forêt :
Les polygones A, E et D sont de type "extérieur"
Les polygones C et B sont de type "intérieur"
Voici un exemple d'image traitée par mon programme :
- image bitmap de départ :
- image vectorielle générée par mon programme, exportée au format .SVG :
Vous l'avez peut être deviné, mon programme a pour but d'usiner une image. Dans mon exemple, la couleur noire est à graver (imaginer une image avec un texte en noir sur fond blanc, et que vous vouliez graver une plaque de boite aux lettres à partir de cette image), la couleur rouge indique des zones à couper par l'extérieur, la couleur orange indique des zones à découper par l'intérieur, ect...
Pour la suite de mon programme, je suis à la recherche d'algorithmes et de formules mathématiques sur les polygones :
- calcul du centre
- intersection
- calcul de l'aire
- déterminer si un point est contenu dans un polygone
- dessin d'un polygone avec un feutre de diamètre D le feutre devant rester à l'intérieur ou à l'extérieur du polygone *
- remplissage d'un polygone avec un feutre de diamètre D **
...
* cela correspond à de la découpe avec "correction d'outil à gauche" ou "correction d'outil à droite"
** cela correspond au fraisage d'une poche correspondant à l'intérieur du polygone
Auriez-vous à me conseiller, au sujet de ces histoires polygones :
- un bon site web, si possible en Français (ou en Anglais)
- un bon livre de maths et/ou de programmation
Merci, A+
Partager