ben ca resoud pas mon pb. c ce que je fait actuellement, et je ne rempli pas ma zone de dessin 100/30 = 3,333 si je caste j'obtien 3 donc 3 *30 = 90 pixel au lieu de mes 100
ben ca resoud pas mon pb. ce que je fait actuellement, et je ne rempli pas ma zone de dessin 100/30 = 3,333 si je caste j'obtien 3 donc 3 *30 = 90 pixel au lieu de mes 100
je crois qu'il voulait dire de travailler avec des coordonnee en double, et de caster juste avant de tracer.
mais en fait il faut arrondir au plus proche:
genre ton 8eme carre, il part de 8*3.33333 = 24.6666666 => arrondi a 25
le 30eme => 99.99999 => arrondi a 100.
y aura des cases de differentes tailles, mais c'est le seul compromis si tu veux remplir absolument exactement une taille precise.
Cherrytree
cn=?
Posté le 06-08-2003 à 10:09:37
Il ne faut travailler en coordonnées entières qu'au moment de faire ton render.
je trouverais plus logique d'avoir la dernière ligne/colonne tronquée plutot que d'avoir des pas variables non ?
xtoune
Posté le 06-08-2003 à 10:36:45
ca a l'air de marcher nickel !!
tronqué la derniere ligne colonne ok mais le pb c que par exemple :
100/30 =3,33 => 3
ce qui donne la 29 ieme ligne a 29*3 = 87 pixel => le pas de la derniere ligne serait donc de 13pixel au lieu des 3 :-(
Message édité par xtoune le 06-08-2003 à 10:37:17
---------------
heu...
Cherrytree
cn=?
Posté le 06-08-2003 à 10:42:08
Bon... Lorsque tu traces la grille tu fais ceci
Code :
int width = 100;
int height = 100;
double step = 100 / 3;
int i = 0;
while (i * step < width) {
g.drawLine((int) (i * step), 0, (int) (i * step), height);
++i;
}
Message édité par Cherrytree le 06-08-2003 à 10:42:59
J'avais deja eu le problème, mais moi je pouvais toucher aux dimensions de la zone de dessin. Je ne sais pas si c'est ton cas, mais sinon tu peux ajuster les dimensions de la zone de dessin pour que ca tombe juste. Au pire ca fait 2-3 pixels à ajouter ou retirer, ca passe inaperçu pour l'utilisateur..
J'avais deja eu le problème, mais moi je pouvais toucher aux dimensions de la zone de dessin. Je ne sais pas si c'est ton cas, mais sinon tu peux ajuster les dimensions de la zone de dessin pour que ca tombe juste. Au pire ca fait 2-3 pixels à ajouter ou retirer, ca passe inaperçu pour l'utilisateur..
oui c aussi une solution ( mais a mon avis plus que 2, 3 pixel )
ici 100/30 ca nous ramene soit à 90/30=3 ou 120/30=4
soit -10 ou +20 pixel