Dessin d'un damier
fouf
Membre
Je souhaite créer une vue qui fait un damier grace à 2 couleurs. Comment faut-il que je m'y prenne ? En utilisant NSFillRect() ? Quelqu'un aurait-il un exemple pour moi ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
[tt]
int x,y
float largeur,hauteur;
x=0;
y=0;
largeur=100.0;
hauteur=100.0;
for (y=0;y<7;y=y+1)
{
for (x=0;x<7;x=x+1)
{
NSRectFill(NSMakeRect (x*largeur,y*hauteur,(x*largeur)+largeur,(y*hauteur)+hauteur))
}
}
[/tt]
C'est vraiment pour le principe, l'important est les deux itérations, ensuite il faut rajouter le code pour choisir la couleur du carreau avant NSRectFill.
Juste une question : x et y sont bien le nombre de carreaux dessinés (x carreaux en longueur et y en largeur) ? Et largeur et hauteur sont bien les mesures des cotés du rectangle à remplir ? Je ne me trompe pas ?
Par contre, j'ai peur que pour le changement de couleur, faire un [color set] soit un peu lourd pour le proc. Est-ce le cas ou non ?
Re-merci
Je me demandais si faire un NSBezierPath avec tous les carrés d'une couleur, puis une autre avec l'autre couleur, puis faire un fill de l'une, changer la couleur une fois et dessiner la deuxieme ne serait pas mieux. Manque de peau, on ne peu pas (à ma connaissance) faire un NSBezierPath qui remplit un rectangle. Quelqu'un a une idée ?
[Fichier joint supprimé par l'administrateur]
Une chose à faire, est de tracer un rect de la taille de ton damier d'une couleur, et ensuite, dans les boucles, tu dessines un carré sur deux avec l'autre couleur. Si tu n'utilises pas la transparence, tu peux aussi recouvrir la méthode isOpaque en retournant YES.
[EDIT]
En faites, le mieux est d'employer la fonction NSRectFillList(), tout à fait adaptée à ce genre de cas. Je ne l'ai jamais utilisée, mais apparemment, de par son fonctionnement, elle permet une vitesse d'affichage 10 fois supérieure à NSRectFill().
[Fichier joint supprimé par l'administrateur]
Si tu veux faire un code vraiment efficace, tu peux faire la chose suivante:
Tu remplis toute ta grille avec un rectangle de couleur A
ensuite tu dessines par dessus les rectangles de couleur B; ça te fait un seul [color set], et tu dessines deux fois moins de choses.
+
Chacha
[edit]
Je viens de voir qu'Eddy58 a dit la même chose, j'avais raté le post. Du coup je viens de pondre le code suivant pour rien; bô, pas grave, je te le file quand même
[Fichier joint supprimé par l'administrateur]
[Fichier joint supprimé par l'administrateur]
Ya un truc marrant que j'ai observer, c'est que ca "flash" un peu quand on utilise pas isFlipped. Enfin, ca ne change pratiquement rien. Merci beaucoup les gars.
Tu peux dessiner une image bitmap de 4 cases de ton damier et remplir un rectangle avec.