FXPaint
Posté le 11/08/2014 18:14
Salut à tous. J'ouvre ici un topic pour parler de l'avancement de mon projet d'éditeur de bitmap.
Ajd je n'ai pas le temps de faire un long message, donc je changerai ça demain. Néanmoins, je poste ici ajourd'hui afin de récolter, si possible, des idées d'outils que vous aimeriez voir dans un éditeur d'image.
Voici donc la liste des outils disponibles et celle des outils prévus. Si vous avez d'autres idées, n'hésitez pas à proposer
Outils Disponibles
Cliquer pour enrouler
Dessiner une ligne
Dessiner un rectangle (comme dans le premier .gif)
Fonction de pinceau, comme celle disponible dans le menu SKTCH de l'application GRAPH
Fonction de remplissage (Pot de peinture) (comme à la fin du premier .gif)
Dessiner un cercle
Dessiner une ellipse
Copier-Couper-Coller-Déplacer
Fonction de zoom, permettant de modifier l'image pixel par pixel, de façon précise (comme dans le second .gif)
Ouverture d'une bitmap dans la mémoire de stockage
Enregistrement d'une bitmap dans la mémoire de stockage (Save et Save As)
Ouverture d'une Picture (actuellement il faut avoir transférer cette picture dans la mémoire de stockage, mais j'y travaille)
Enregistrement d'une Picture
Outils Prévus
Cliquer pour enrouler
Exportation sous forme de liste pour le drawstat
Exportation sous forme de sprite pour le LuaFX
Bombe de peinture
Différents motifs de pinceaux/brosse (comme dans paint)
Citer : Posté le 11/08/2014 19:18 | #
Ben voyons. Et tu crois qu'elle fonctionne comment, la structure ?
Citer : Posté le 11/08/2014 19:25 | #
Elle alloue dynamiquement à chaque ajout d'élément.
(ne pas me hurler dessus si c'est pas faisable sur calto)
Ajouté le 11/08/2014 à 19:46 :
Et comme je suis gentil, je mets même ListsLIFO.hpp
Element(int argx,int argy,Element* argprevious)
[purple]int[/purple] x;
[purple]int[/purple] y;
Element* previous;
}
class ListLIFO{
public :
ListLIFO();
~ListLIFO();
void add(int x,int y); [green]
bool depile(int* x,int* y);//renvoie 0 si l[gray]'opération ne s'[/gray]est pas bien passée[/green]
private :
Element* current;
};
et ListLIFO.cpp
[brown]#include <stdlib.h>[/brown]
ListLIFO::ListLIFO(){current=NULL;}
Element::Element(int argx,int argy,Element* argprevious){
x=argx;
y=argy;
previous=argprevious;
}
ListLIFO::~ListLIFO(){
[purple]int[/purple] x;
[purple]int[/purple] y;
[b][blue]while[/blue][/b](current!=NULL){
this[b]->[/b]depile(&x,&y);
}
}
ListLIFO::add(int x, [purple]int[/purple] y){
Element* current2=new Element(x,y,current);
current=current2;
}
ListLIFO::depile(int* x,int* y){
[b][blue]if[/blue][/b] (current!=null){
Element* current2=current;
current=current[b]->[/b]previous;
*x=current2[b]->[/b]x;
*y=current2[b]->[/b]y;
delete current2;
[b][blue]return[/blue][/b] 1;
}
[b][blue]else[/blue][/b] return 0;
}
ListLIFO::isEmpty{
[b][blue]if[/blue][/b](current==NULL) [b][blue]return[/blue][/b] 1;
[b][blue]else[/blue][/b] return 0;
}
Il y a sûrement une ou deux erreurs mais dans le fond, c'est ça
Ajouté le 11/08/2014 à 19:54 :
En fait, c'est un peu une application de ce qui se trouve dans le cours de m@teo21
Coïncidence ? Je ne pense pas.