Créer un paint

Signaler
Messages postés
69
Date d'inscription
dimanche 30 octobre 2005
Statut
Membre
Dernière intervention
6 mars 2008
-
Messages postés
15
Date d'inscription
samedi 2 janvier 2010
Statut
Membre
Dernière intervention
27 août 2011
-
Je ne savais pas très bien dans quelle catégorie mettre ma question..j'espère qu'elle se trouve au bon endroit (ça ennuiera moins les gens et j'aurais plus de chance de récolter une réponse).
Je connais les bases des graphics et j'essaye de créer une sorte de paint pour mettre en application tout ça et surtout pour pouvoir modifier mes images binaires (noir ou blanc).
J'ai cependant renontré plusieurs difficultés:
<li>La taille des curseurs</li>Comment peut on créer un curseur qui puisse changer de taile (par exemple ma gomme qui est en gros un curseur en forme de carré évidé est petite et je veux qu'elle paraiss eplus grande)
C'est juste le côté esthétique qui m'interesse, je sais comment gommer une zone carré d'une certaine taille mais la zone justement doit être représentée par le curseur.. et ça je ne sais pas faire...

<li>Créer un outil du type pot de peinture</li>Vous savez, celui qui remplit une zone de même couleur par une autre couleur... Je ne vois pas du tout comment faire

<li>Pour l'outil stylo</li>Je sais comment avoir la position de la souris au moment d'un click, au moment où on appuie ou même au moment où on relache, mais comment connaitre le parcours de la souris entre le moment où on presse et le moment où on relache pour afficher le parcours réellement parcouru et pas une droite entre les deux points?

Merci de votre aide

5 réponses

Messages postés
475
Date d'inscription
jeudi 19 juin 2003
Statut
Membre
Dernière intervention
3 novembre 2008
1
La taille des curseurs:
pas besoin de changer de taille. Cache ton curseur, ensuite en utilisation l'événement MouseMove, dessine un rectangle blanc (la gomme à effacer) là où le curseur se trouve. Ca implique aussi que tu sauvegarde la zone en-dessous de la gomme à effacer pour que tu puisses la restaurer.

Créer un outil du type pot de peinture:
mmm....l'algo n'est pas simple. Je suis presque sûr que GDI a une fonction qui fait ca. Explore la classe Graphics pour voir un peu ;)

Pour l'outil stylo:
Il y a un événement MouseMove tout comme MouseDown et MouseUp. Quant l'utilisateur clique, définit une variable du genre mousepressed = true;
dans MouseMove, vérifie si mousepressed est égale à true. Si c'est le cas, dessine une ligne entre l'ancienne position et la nouvelle (encore faut-il sauvegarder ces positions :)

Si t'arrives à le terminer, ca serait une super bonne idée de mettre ton paint sur CSharpfr :)

[:D] @++
Messages postés
69
Date d'inscription
dimanche 30 octobre 2005
Statut
Membre
Dernière intervention
6 mars 2008

Merci,
je m'y affaire. Pour le curseur, en effet ce sera plus simple
Pour l'algo je l'ai trouvé sur: http://www.codeproject.com/cs/media/floodfillincsharp.asp
Pour le stylo, ya plus qu'a ;)

Bien sur, quand j'aurais fini (je suis pas du genre à abandonner vite), je mettrai mon petit truc ici après avoir commenté bien entendu,
en tout cas merci beaucoup
Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
18
pour le pot de peinture cest pas bien compliqué dans lidée ;)

juste un pti algo récursif.

tu click sur un pixel, lalgo (grossier) est le suivant :

pour tous les pixels autour de celui actuel

    si le pixel a la meme couleur, rappeler la fonction

    colorier le pixel dans la nouvelle couleur


bon cest grosso modo, apres faut lecrire, mais dans lidée cest ca ;)
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
98
Salut,

Si tu veux tu peux jeter un oeil aux sources de Paint.NET, ça devrait t'apprendre pas mal de choses sur le sujet :-)

/*
coq
MVP Visual C#
*/
Messages postés
15
Date d'inscription
samedi 2 janvier 2010
Statut
Membre
Dernière intervention
27 août 2011

Salut,
Si tu as trouver est ce que tu pourrais me donner le code stp car je n'ai pas trouvé ou c'était dans les sources de paint.net

Merci