-
Notifications
You must be signed in to change notification settings - Fork 2
/
FAQ.txt
175 lines (142 loc) · 9.07 KB
/
FAQ.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
Remarques, questions, etc. Partagez vos pens�es ici ! ;-)
--
De Alexandre :
===============
1) methode onMouseDragged
>>> Pourquoi pas mettre la m�thode en commun pour Oval et Rectangle ? (idem pour les autres m�todes "onMouse...")
Vu que c'est exactement le m�me code, on pourrait se simplifier la vie non ?
2) Need more explainations for Model.java :'(
3) Je trouve que les noms de variables ne sont pas assez explicites, bon on comprends (genre sz pour size) mais
y a moyen de les rendre un peu plus compr�hensibles sans pour autant avoir des noms � rallonge,
genre sizeOval au lieu de sz.
4) Vu qu'on parlait des diff�rents formats...Je sais qu'on en est pas encore l� mais �a
ma taraude cette histoire xD Que pensez vous du format SVG ? :-)
5) pour le redo undo, on devrait faire un layer manager ce serait plus simple non ?
(François):
1) je pense qu'il faut attendre d'avoir definie cette methode pour toute les formes que l'on souhaite (polygon..),
et donc definir les outils (oval, rectangle, polygon , et..)
puis modifier les doublons, la methode est actuellement mal faite je pense qu'il faut definir d'autre methode
moveTo(Coord c), resize(Coord sz)...
puis elles n sont pas identique il me semble que pour l'oval je garde en memoire la position initiale pour permettre
de tracer vers -x -y puis de retracer vers x y sans modifier la position initiale
2) Centralise les informations, couleurs, formes, evenement souris..
3) a voir apres restructuration, size dans la classe forme etc..
4) pour enregistrer notre travail et pouvoir le recuperer par la suite je pense qu'un fichier texte
par exemple "Oval.class:2:2:(ColorModel.class:255:255:255:255):true"
"Oval.class:5:5:(ColorModel.class:255:255:255:255):true"
Permet de recréer les objets: Class c = Class.forName("Oval.class")...
c.newInstance()..
Mais avant d'ecrire une classe qui permette de lire/ecrire ces fichiers il faut avoir bien avancé sur les fonctions
de bases pour ne pas devoir tout réecrire apres.
5)
Guillaume :
Petite quesiton : en quoi consiste concrétement le boolean created dans Forme.java ?
15/12/13
Problèmes à regler :
Couleurs des objets. GROS BUG xD
Polygon : je pense qu'on devrait revoir un peu la manière de construire notre polygone. A discuter demain.
17/12/13
J'ai proposé une solution pour le code hexa, François tu penses pouvoir l'implémenter ? :-)
Guillaume ça te dit de travailler sur l'enregsitrement du fichier (et éventuellement l'ouverture) ? :-)
Francois:
Je ne pourrais pas travailler sur le projet avant jeudi je pense.
J'ai quand même regarder le code pour convertir hexa => rgb , on devrait pouvoir l'ajouter.
Guillaume :
Oui je voudrais bien m'occuper de l'enregistrement (et de l'ouverture) puisque j'ai absolument rien fait dans le projet et je voudrais quand même bosser un minimum dessus.
21/12/13
Alexandre :
Pour l'instant je ne touche pas au code, j'attends que Guillaume aie rajouté son code...
Je vais de mon côté mettre les icones pour les nouveaux outils.
Par contre, il y a un bug au niveau du colorwheel, je peux saisir le code hexa :D Mais pas le rgb :'(
Redimensionnement pas au point non plus n'est-ce pas ? (j'arrivais pas à redimensionner)
Bonne soirée ! :)
26/12/13
Alexandre :
J'espère que tout le monde a passé un bon moment en famille pour Noël. :D
Aujourd'hui je suis revenu sur le code pour voir un peu ce qu'a fait Guillaume, c'est plutôt bien :)
J'ai commencé à faire l'export des images (pas vraiment demandé, mais peut être un plus).
J'ai choisi l'export en SVG, car c'est le format par defaut pour le dessin vectoriel ^^
Et c'est plutôt pas compliqué à manipuler quand on a compris les grandes lignes.
On fera si vous voulez aussi un export en JPG.
Il faudra aussi voir l'import (demandé)...D'où la necessité de faire des calques, je trouve.
Bon en espérant que certains passeront sur github avant la fin de vacances, bonne fin de semaine.
28/12/13
A mon avis pour l'import/export il faut:
-pouvoir enregistrer en .afg et pouvoir ouvrir les fichier .afg pour continuer de les modifier.
-pouvoir exporter le resultat en .jpg et .png
Les calques ne sont pas necessaires pour l'import, on enregistre toutes nos formes avec leur attributs, profondeur, position, taille...
Alexandre :
"-pouvoir enregistrer en .afg et pouvoir ouvrir les fichier .afg pour continuer de les modifier." > Guillaume s'en charge normalement...
"-pouvoir exporter le resultat en .jpg et .png" d'accord, mais je tiens beaucoup à faire l'export en SVG, j'ai d'ailleurs commencer.
Il faut juste me préciser comment obtenir le rayon du cercle.
"Les calques ne sont pas necessaires pour l'import, on enregistre toutes nos formes avec leur attributs, profondeur, position, taille..." Pour l'export tu veux dire ?
Francois:
"Il faudra aussi voir l'import (demandé)...D'où la necessité de faire des calques, je trouve." tu as parlé de calques pour l'import,
on peut ajouter la gestion des calques mais je ne vois pas pourquoi on en a besoin pour l'import.
L'export/import svg c'est tres bien continue, pour le cercle cherche plutot a faire des ellipses en svg:
le point central = pos(x,y) + 1/2 sz(x,y)..
rx = sz.getX()/2;
ry = sz.getY()/2;
cela marchera pour les ellipses, et donc pour les cercles, ou rx=ry
30/12/13
Alexandre :
Ce serait cool d'avoir la gestion des calques :) (oui j'avoue que la gestion des calques
n'a rien avoir avec l'import je me suis emmelé les pinceaux).
Merci pour ton aide pour le cercle ! :) Maintenant nous pouvons exporter toutes les formes en SVG :)
02/01/14
Guillaume :
Alexandre comme tu t'occupes aussi de l'ouverture, comment tu as fait pour créer les figures qui sont dans le fichier à ouvrir ?
Puisque chaque forme a un contructeur différent, par exemple Line et Rectangle.
J'arrive bien à récupérer les attributs mais je les récupère dans Forme.java avec une méthode toString() qui récupère seulement points,color,pos,deep,fill et borderWidth.
Tu as fait un toString() différent pour chaque forme ?
------------------------
Finalement j'ai fait une méthode toString() pour chaque forme.
03/01/14
Alex :
A mon avis y a plus simple, par exemple ton toString que tu avais créé dans Model + getFormes() te permmettent de récupérer les attributs.
Pour l'export en SVG je faisais par exemple model.getFormes().get(i).getCoord().getX() pour récupérer le x des coordonnees de la forme
Le tout dans une petite boucle for(int i=0...) pour parcourir l'ArrayList. Si tu preferes plus complexe tu peux (normalement) utiliser un iterator,
perso j'ai choisi une boucle ^_^
Pour l'ouverture tu lis le fichier ligne par ligne et tu regardes ce que tu y as écrit et tout "traduis" ça :
typiquement tu récupères tous les attributs et tu crées ta forme quoi.
Méthode possible :
[EXEMPLE ENREGISTREMENT DE MON RECTANGLE]
Rectangle,59,45,,45,45,255,0,0,0,true;//tu peux rajouter également la profondeur
//rappel : public Rectangle(Coord pos,Coord sz,ColorModel color, boolean fill)
[EXEMPLE OUVERTURE]
model.getFormes.clear();//on enleve les formes actuelles du canvas
boucle qui parcours le fichier
if la ligne commence par "Rectangle". (par exemple avec beginsWith() )
//je lance ma procedure de recuperation un à un des attributs
//typiquement tu fais une boucle qui repere le separateur (qui ici la virgule soit le point virgule)
Coord pos = new Coord ([le x qu'on recupere = 59],[le x qu'on recupere = 45]);
//ETC.
Rectangle r=new Rectangle();
//r.setDeep() si tu as inclus la profondeur
model.getFormes.add(r); //j'ajoute mon rectangle à la liste des
fin if
//ETC POUR LES AUTRES FORMES
fin de boucle
m.repaint;
Inspire toi de ce que j'ai fait pour le SVG ;)
12/01/14
Alexandre :
Hey le splashscreen je voulais le faire ! >_< :( Pas grave, comme ça c'est fait :P
Pas mal le gestionnaire de position :)
Puis je me permettre de modifier la position X, Y du clone lors du copier-coller ?
Tu sais pour le décaler un peu vers la droite, que l'utilisateur puisse voir ou est le clone. :)
Sinon c'est pas mal ce qu'on a fait jusqu'à présent :)
probleme d'ouverture d'un fichier svg crée par notre logiciel, il ss'ouvre correctement sur internet mais pas chez nous.
http://puu.sh/6isLD.jpg
probleme corrigé , peut etre qu'il faut restructurer un peu le code pour optimiser
j'ai juste incrusté quelques lignes pour que ca ouvre bien mon dessin
13/01/13 :
Alexandre :
1 problème dans le code : Tools.java > model.setTool(getId()); getId() unknown :(
Du coup je ne peux pas tester l'import d'image :/
1 bug repéré : quand on clique dans Shape Manager alors qu'il n'y a aucune forme, eclipse s'affole, du rouge partout
j'ai fait un petit try catch histoire de le calmer, le pauvre en était tout retourné !
Mais visiblement le problème est dû à ta méthode getSelectedDeep()
Je souhaiterais insérer une valeur booléenne appelée saved. Lorsque le dessin est sauvegardé cette valeur vaut true,
sinon (par défaut) elle vaut false. Cela permettrait de detecter lorsque l'utilisateur veut quitter l'application
de lui proposer de sauvegarder son dessin.