Projet FAIN : Saisie et remplissage d'un polygone 2D
Problèmes rencontrés :
-
J'ai bloqué assez longtemps sur la fonction scan line, notamment sur l'ordonnée la plus grande et la plus petite du polygone, problème de remplissage en dehors du polygone, je suis passé par une fonction auxiliaire qui me permet de savoir si je rentre ou sors du polygone. ( CheckLinePointList )
-
Après avoir réussi à remplir correctement le polygone j'ai eu un problème pour le vider, finalement j'ai fait une petite fonction qui réinitialise les pixels du fond en noir. ( clearImage )
-
En changeant de machine pour coder j'ai eu des problèmes avec mes initialisations d'entiers dans mes conditions " if ", j'ai mit les initialisations en dehors au cas ou mais après avoir modifier les FLAGS dans le makefile je n'ai pas réussi à modifier la version du C utilisé ( ancienne à C99 )
-
J'ai encore des fuites mémoires, j'ai rajouté une fonction pour libérer l'image dans le code initial de monsieur Habibi mais il y a toujours des pertes. ( destroyImage )
-
Encore un autre problème qui persiste, ce n'est pas à chaque fois mais lorsque je ferme le polygone et passe en mode Edge, si l'arête selectionné est l'arête créé pour la fermeture du polygone ( firstPoint -> lastPoint ), à certain moment la selection ( le trait bleu ) n'est pas totalement confondu avec l'arête, on remarque des points blanc qui ne sont pas repassé en bleu. Voir image en annexe !
Récapitulation des commandes disponibles :
- Mode Append : ( touche A )
- Par défaut c'est ce mode qui est activé au lancement du programme
- Clic gauche permet d'ajouter des sommets
- Mode Vertex : ( touche V )
- Clic gauche permet de selectionner le sommet le plus proche, il est également possible de naviguer entre les sommets via les touches Page suivante/précédente
- Touche ' suppr ' permet de supprimer un sommet
- Touches directionnelles permettent de bouger le sommet selectionner
- Mode Edge : ( touche E )
- Clic gauche permet de selectionner l'arete la plus proche, il est également possible de naviguer d'une arete à l'autre via les touches Page suivante/précédente
- Clic milieu permet de scinder l'arete selectionner en deux et d'introduire un nouveau sommet
- Disponible à tout moment :
- Touche ' C ' permet de fermer ou ouvrir le polygone
- Touche ' F ' permet de replir ou non le polygone
- Touche ' D ' permet de supprimer le polygone et recommencer une figure
- Touche ' escape ' permet de quitter le programme
Exemple du projet, deux images d'une étoile remplie ou vide ( fill activé ou non )
pour lancer le projet :
- make
- ./plot size size
- utiliser les commandes spécifiées ci-dessus
Lavoisier Romain Master Informatique et Sciences de l'Image Université de Strasbourg