jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007
-
21 juin 2003 à 07:46
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007
-
1 juil. 2003 à 00:23
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 1 juil. 2003 à 00:23
donc chose promis chose du mais bon faut voir la gueule lol
bon alors voila g refait le prog sous form mdi pour pouvoir ourir plusiueurs pages etc bon la je vous lla deconseille car beaucoup de chose bug et desfois quand je clique une form souvre on sait pas pk
merci bcp saros je vais essayer de faire un truc bien demain paske la vais me coucher
bon alors si vous etes reveille vous pouvez tjr regarder mais c'est pas brillant
Saros
Messages postés921Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention23 septembre 2010 30 juin 2003 à 21:19
Ah oui j'ai oublié les explication :)
On appelle Ovale ainsi :
Ovale [X du centre], [Y du centre], [Rayon sur X], [Rayon sur Y]
Voilà. Je ne sais pas si tu as vu le cercle trigonométrique (programme de seconde générale), sinon cherche sur internet, il doit y avoir des milliers de pages qui en traitent.
Saros
Messages postés921Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention23 septembre 2010 30 juin 2003 à 21:16
Pour ton ovale :
Private Sub Ovale(Xc, Yc, Xr, Yr)
Dim Angle As Double
Dim APosX, APosY, CPosX, CPosY
APosX = Xc + Xr
APosY = Yc
For Angle = 0 to 360 Step 20
CPosX = Xc + Xr * Cos(Angle)
CPosY = Yc + Yr * Sin(Angle)
Picture5.Line (CPosX, CPosY, APosX, APosY), Picture2.BackColor
Next Angle
End Sub
Bon là encore je n'ai pas essayé, mais il n'y a pas de raison qu'il y ait de problème.
Bonne continuation.
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 30 juin 2003 à 17:04
Oui a mon avis il doit de manquer une barre d'outils
pour ressembler a paint shop pro la fonction est en cours
en fqait saros cette fonction va maider parce que par exemple pour le spray je nepeux pas repetyer le code plusieur fois donc je ne peux pas avoir deux couleurs
je vais essayer ta fronction meric (ce soir ajout d'une nouvelle mise a jour si tous se passe bien)
Pour les ovales si vous avez une solution (enfin g une petite idée mais pour linstant je ne l'ai pas tester)
pour la gomme euh bon c'est pas tellement grave mais je vais essayer de resoudre ce pb
et pour le spray je vais arranger le pb aussi
IMPORTANT!!!: g fait une fonction qui permet de faire tourner limage (a langle voulmue) malheureusement elle est lente est pas parfaite puisque ma picturebox sur lequel je dessine a comme prop sclemode pixel et mon prog marche sous twip comment faire donnez moi des liens ou un code ou une aide
Bon merci encore a tous pour tous ces mesqsages aides et commentaires je vais arranger toutes les pb désselés
mise a jour ce soir normalement
@+ bonne prog
jotrash
Saros
Messages postés921Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention23 septembre 2010 29 juin 2003 à 19:48
Pour ta fonction Couleur, il faut (si tu y tiens tellement) créer une variable globale BoutonActu (As Byte) :
Public BoutonActu As Byte
Ensuite :
Private Function Couleur() As Long 'Seule une fonction renvoie une valeur
If BoutonActu = 1 Then
Couleur = Picture2.BackColor
ElseIf BoutonActu = 2 Then
Couleur = Picture3.BackColor
End If
End Function
Je ne peux pas l'essayer pour l'instant, j'ai un disque dur qui a pété, du coup je n'ai plus VB et je n'ai pas pu non plus essayer la nouvelle version de ton programme...
maximberman
Messages postés16Date d'inscriptionvendredi 27 juin 2003StatutMembreDernière intervention27 juin 2003 29 juin 2003 à 10:15
Le prog est super mais j'arrive pas à changer de couleur et la taille ou voir la couleur active... il doit me manquer une barre d'outil (je suis en 1024*768). Sinon g des conseils:
-normalement quand le spray reste à la mm place, il devrait continuer à taguer
-le curseur devrait être au centre du carré de la gomme
-ovales...
- ensuite si tu veux ressembler à paint shop pro tu deveait limiter la zone de travail
bon en tt cas bravo, je débute en vb et la source est bien commentée
Saros
Messages postés921Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention23 septembre 2010 28 juin 2003 à 22:13
Effectivement le 15 c'est pour l'echelle ; mais j'ai pris cette valeur de Screen.TwipsParPixelX et Y, elles peuvvent varier, il vaut donc mettre ScaleMode à Pixel et 1 à la place...
Tellmarch
Messages postés53Date d'inscriptionsamedi 22 mars 2003StatutMembreDernière intervention27 septembre 2005 26 juin 2003 à 18:31
je ne comprend pas le +15... c'est peut etre une question d'echelle, pixel ou je sais plus quoi? on meut mettre scalemode à pixel dans ce cas
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 26 juin 2003 à 16:55
BON NOUVELLE MISE A JOUR UNE GROSSE EST EN PREPARATION MAIS LA C4EST JUSTE UN VRAI POT DE PEINTURE POUR PAS QUE VOUS CHERCHIEZ POUR RIEN ENFIN BON JESPERE QUIL VA VOUS PLAIRE PARCE QUI L MA COUTE TOUTE MON APRESMIDI
@+
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 26 juin 2003 à 15:31
merci saros pour tout merci aussi telmach
bon g essaye le code c'est pas tres rapide effectivement; mais bon cest mieux que le miien
apparemment cette lenteur ne vient pas de mon prog puisque je lai eesayé sur dautre et ne viens pas non plus du fait que ce soit une picture box
je pense sinon faire unpot de peinture qui colorie jusqua un obstacle ou ligne je suis en train de reflechir de dessus
bon @+ e merci enf ait de ton explication saros
Saros
Messages postés921Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention23 septembre 2010 26 juin 2003 à 12:45
En fait il faut mettre :
ElseIf a = True Then
Remplir X, Y, Picture2.BackColor, Picture5.Point(X, Y)
et :
Private Sub Remplir(X As Single, Y As Single, Coul As Long, CoulSol As Long)
On Error GoTo Err_Hnd
If Picture5.Point(X, Y) <> CoulSol Then Exit Sub
Picture5.PSet (X, Y), Coul
Remplir X + 15, Y, Coul, CoulSol
Remplir X, Y + 15, Coul, CoulSol
Remplir X - 15, Y, Coul, CoulSol
Remplir X, Y - 15, Coul, CoulSol
DoEvents
Err_Hnd:
End Sub
Mais j'ai regardé ce que ça donne et ce n'est vraiment pas ça. En plus d'être lent, cet algorithme oublie de pixels un peu partout, de plus, il demande trop de mémoire (au bout d'un petit moment, VB affiche un problème de mémoire stack), d'où le On Error.
Saros
Messages postés921Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention23 septembre 2010 26 juin 2003 à 12:33
[Il y a eu un problème, je continue]
Si c'est bon, il change la couleur du pixel en la nouvelle couleur : Coul.
Ensuite (et c'est tout l'intêret), il va répéter toute cette opération sur tous les pixels adjacents (sauf diagonales) : ainsi, si le pixel adjacent ne doit pas être changé il ne le sera pas, mais sinon il l'est.
Il répète cette opération indéfiniment, jusqu'à ce que toute la zone soit changée, 'remplie'.
Si tu ne comprends pas, regarde son fonctionnement au pas-à-pas.
Il faut appeller cette fonction ainsi :
Remplir X, Y, Picture2.BackColor, Picture5.Point(X, Y)
Car la zone à remplir est de la couleur située sous le curseur, et la couleur de remplacement est la couleur primaire, et que le point de départ du remplissage est la position du curseur...
Essaie comme ça.
Saros
Messages postés921Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention23 septembre 2010 26 juin 2003 à 12:08
Encore bonjour ;
Oula c'est vrai j'avais oublié d'enlever les parenthèses...
Euh... à propos, Tellmarch, je connais pas d'autre algorithmes (c'est le seul que j'ai trouvé, mis à part une méthode par lignes horizontales, mais très peu performante et lente). Je vais à l'instant chercher plus d'informations (merci).
Et je vais voir pourquoi cet algorithme ne marche pas dans ton programme.
Pour l'explication :
Remplir, cela consiste à remplacer, dans une zone délimitée par une certaine couleur, cette dite couleur par une autre.
Ce que fait la fonction remplir, c'est voir si le pixel à la position qu'on lui a donné (X et Y) est de la couleur à remplacer (qu'on lui donne aussi : CoulSol)
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 26 juin 2003 à 10:16
dsl je ne comprends pas tellement (en tou cas ca marche pas ) mais bon a mon avis c'est normal puisque je comprends rien
(jsuis debutant faut yaller molo.lol
bon @+
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 26 juin 2003 à 09:47
oki merci tellmarch je vais essayer avec ca et essayer de loptimiser
ou sinon faudrai tmarcher par api mais bon comme je sais pas comment faire
Tellmarch
Messages postés53Date d'inscriptionsamedi 22 mars 2003StatutMembreDernière intervention27 septembre 2005 26 juin 2003 à 08:17
ne mets pas de parenthèses à Remplir(X+1, Y, Coul, CoulSol).
Par contre, cet algo n'est pas vraiment opyimisé Saros, car chaque point sera examiné un grand nombre de fois...
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 25 juin 2003 à 22:47
slt merci encore pour ta participation Saros
Par contre pour ta fonction de remplissage je n'y comprends rien lol
qu'en jessaie de l'implementer il me sort qu'il y a besoin d'un "=" ???
bon ben @+
merci pour tes conseille je vais les executer
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 25 juin 2003 à 12:11
oui ce sont des bonnes idees je vais essayer tout ca c'est vrai que ca fait un changement par rapport a la première version merci de toutes ces aides
@+
Saros
Messages postés921Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention23 septembre 2010 25 juin 2003 à 11:35
Re-bonjour ;
J'ai regardé la nouvelle version, c'est vrai qu'elle arrange beaucoup de trucs par rapport à la première (bravo)...
Pour le remplissage, il y a une méthode récursive qui marche très bien, je ne sais pas si tu la connais :
CoulSol désigne la couleur à remplacer par Coul.
Private Sub Remplir(X as integer, Y as Integer, Coul as Long, CoulSol as Long)
If Picture5.Point(X, Y) <> CoulSol Then Exit Sub
Picture5.PSet (X, Y), Coul
Remplir(X+1, Y, Coul, CoulSol)
Remplir(X, Y+1, Coul, CoulSol)
Remplir(X-1, Y, Coul, CoulSol)
Remplir(X, Y-1, Coul, CoulSol)
End Sub
Je ne l'ai pas essayé (je te laisse le soin de l'implémenter comme tu le sens) mais généralement ça ressemble à ça.
Et plutôt que de créer 10 variables, parmi lesquelles 1 ou 2 ont la valeur True, créé une variable (style 'ModeActuel') qui peut prendre des valeurs numériques, correspondantes aux différents modes de dessin. Sinon, il y a toujours un risque de s'embrouiller...
Pour faire des ovales, pourquoi ne fait-tu pas de fonction 'à la main', puisque apparemment il n'y a pas de fontions Ovale dans un PctBox ?
Bonne continuation
Saros
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 23 juin 2003 à 21:33
bon ben une grosse petite enfin comme vous le sentez g tout expliqué en haut
bon ben tjrs ouvert au commentaire notes suggestions aides..
enfin vous savez @+ bonne prog
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 23 juin 2003 à 19:14
bon encore une chite amelioration vraiment chite
le spray marche genial merci Saros
sinon g essaye quelque chose pour la gomme ca marche po dites moi ou est l'erreur
et ma procedure pour appeler une boite dee plette de couleur marche pas laquelle est-ce
merci de votre aide @+
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 23 juin 2003 à 17:35
le remplissage pour le cerlce non ce nest pas normal mais le pot de peinture se contente POUR L'instant juste de changer la couleur de la page
bon j'ameliore le tout et je le réenvoie
merci encore pour tout vos commentaire
Saros
Messages postés921Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention23 septembre 2010 23 juin 2003 à 15:37
Le programme n'est pas entièrement optimisé, mais il fonctionne (9/10)...
Queslques trucs à signaler :
-Le spray se content de tracer quelques points autour d'un cercle, et non pas de tracer un cercle rempli... Le spray ressemblerait plutôt à ça :
Picture5.DrawWidth = 1
Randomize
Dim lSX As Single
Dim lSY As Single
For lCnt = 0 To 20
lSX = 100 * Rnd * Cos(Rnd * 6.28) + X
lSY = 100 * Rnd * Sin(Rnd * 6.28) + Y
If d = True Then Picture5.PSet (lSX, lSY), Picture2.BackColor 'le spray
Next lCnt
En tout cas, chez moi ça marche...
-La fonction de remplissage ne marche pas, c'est normal ?
-C'est vrai que la 'gomme' irait mieux sous le nom de 'Undo'...
À part ça, tout fonctionne...
Saros
cs_TheHacker
Messages postés442Date d'inscriptionsamedi 23 novembre 2002StatutMembreDernière intervention19 octobre 2005 23 juin 2003 à 13:21
Effectivement c bcp mieux qu'avant ! :-D
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 23 juin 2003 à 13:04
bon encore une mise a jour a propos des remarques de Urgo
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 23 juin 2003 à 10:33
et ditess moi aussi comment faire pour faire des ovales (avec quoi proceder
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 23 juin 2003 à 09:21
en fait mon but serait dariver à un resultat du genre paint shop pro pas tous les menus et tous mais juste les outils etc
jessaie de faire des menus avec les fonctions enregistrer en tous formats maius bon deja bmp g du mal alors le reeste lol
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 23 juin 2003 à 09:14
merci tes messages me font grave plaisir
bon je sais mon prog est encore a ameliorer mais bon je trouve ca pas mal quand meme, je voulais surtout un prog de desqsin qui transforme le dessin en fod d'écran, mais maintenant le propg de dessin minterresse et je vais sur tout m preoccuper de ca
voila merci je vais referme la gomme mais par contre pour la pipette; normalement quand on click gauche sur une couleur ca doit la selectionné pour le click gauche du crayon.
enfin bon je vais reessayer mais ce que tu me dis me semble bizarre.
dites moi ce que vous pensez du prog et de la fonction du fond d'écran; je vais amelioreraussi pour que quand on charge ca lance dans la config de chacun car moi on ma enguelé pour ceux qui avait que 800*600
voila @+ et bonne prog
cs_Urgo
Messages postés780Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention16 avril 20091 23 juin 2003 à 00:41
Tu y trouveras peut etre quelques solutions et idées, comme tu veux
Bye
cs_Urgo
Messages postés780Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention16 avril 20091 23 juin 2003 à 00:09
Vraiment très bien fait ! 9/10
A améliorer:
- La résolution !! Modifie en mettant une form_load la position de Toolbar1 et Frame2 ! Car en 1024 * 768 c moche
- Lorsqu'on a sélectionné la couleur avec la pisette, il devrait mettre automatiquement le pinceau !
- Il n'y a qu'un seul curseur ??
- La gomme annule le dernier évènemment produit, mais elle devrait plutot éffacer la partie sélectionné, enfin comme dans Paint quoi :)
Voilà, fait comme bon te sembles mais améliore encore un peu ton prog et il va vite devienir excellent ! ;)
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 22 juin 2003 à 22:11
et encore une amelioration:
grossissement du pinceau qui marche parfaitement
pipette avec la procedure point merci Tellmarch
bon ben je suis en train de créedr des menus
laissez moi des notes et des remarques please
@+ et bonne prog
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 22 juin 2003 à 21:43
et encore un nouveau prog
avec ajout de la gomme
optimisation de code
donnez mopi une note , des remarques
et surtout dites moi comment faire une pipette car jy arrive po
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 22 juin 2003 à 21:16
bon ben voila je vous conseille de retelecharger le prog car c'est le jour et la nuit maintenant images recupere de paintshoppro
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 22 juin 2003 à 19:22
Pour les ovales c'est quasiment fait
euh pour les pictures box g fait un avis sur le tchat on ma dit que cetait mieux
je mets des vrais icones je change pour la taille du curseur ete je le passe en 800*600
@+ bonne prog
cs_max12
Messages postés1491Date d'inscriptiondimanche 19 novembre 2000StatutModérateurDernière intervention 7 juillet 2014 22 juin 2003 à 05:15
Domage qu'on puisse pas faire des oval :( Mais le reste c'est bien :D
Tellmarch
Messages postés53Date d'inscriptionsamedi 22 mars 2003StatutMembreDernière intervention27 septembre 2005 21 juin 2003 à 20:26
Il y a un petit bug pour la largeur du pinceau, ça se plante quand tu remets à 0...
Tu pourrais changer les prop min et max du controle je pense
cs_TheHacker
Messages postés442Date d'inscriptionsamedi 23 novembre 2002StatutMembreDernière intervention19 octobre 2005 21 juin 2003 à 19:30
encore un truc, j'trouve que c un peu con de s'etre amusé a faire un picturebox pour chaques couleurs alors que tu peux ouvrir une boite de dialogue par défaut, c un peu moins bo mais bon c + intelligent comme technique....
cs_TheHacker
Messages postés442Date d'inscriptionsamedi 23 novembre 2002StatutMembreDernière intervention19 octobre 2005 21 juin 2003 à 19:26
ah ben ca chante tout !!!
j'viesn de mettre mon ordi en 1024*768 c bcp + classe d'un coup ya des bouttons et tout :-p
franchement c pas male alors, excuse d'avoir jugé si vite mais j'pigeais pas.... sinon c quand meme con de devoir apsser par le changement de résolution pour voir ton prog tu devrais modifier ca, voila @+
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 21 juin 2003 à 18:01
the hacker tu as quellle resolution
retelecharge la source et passe en 1024*768
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 21 juin 2003 à 18:00
the hacker tu as quellle resolution
retelecharge la source et passe en 1024*768
Tellmarch
Messages postés53Date d'inscriptionsamedi 22 mars 2003StatutMembreDernière intervention27 septembre 2005 21 juin 2003 à 17:12
Moi ça marche maintenant :)
cs_TheHacker
Messages postés442Date d'inscriptionsamedi 23 novembre 2002StatutMembreDernière intervention19 octobre 2005 21 juin 2003 à 17:07
tjr rien :-((((
cs_TheHacker
Messages postés442Date d'inscriptionsamedi 23 novembre 2002StatutMembreDernière intervention19 octobre 2005 21 juin 2003 à 17:05
ah c explik pas mal de choses merci j'vaisq rééssayer
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 21 juin 2003 à 16:43
voila thehackers retelecharge la source
tu verras autre chose qu'une feuille blanche
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 21 juin 2003 à 16:27
ahhh non c paske le code je lai fait en 1280*1024
cpour ca que tu vois rien paske sinon ya des chose lol
cs_TheHacker
Messages postés442Date d'inscriptionsamedi 23 novembre 2002StatutMembreDernière intervention19 octobre 2005 21 juin 2003 à 15:33
niveau interface ya rien,j'vois des command1..... dans le code mais sur le form ya rien alors c dur de changer d'option.....
j'laurai aps fait comme ca moa, j'trouve ta construction de programme un peu bizarre, chacun sa méthode.
ya rien sur ce prog il ets pas du tt achevé ????
voila bonne continuation
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 21 juin 2003 à 14:52
quest-ce que tu naimes pas thehacker dis moi des remarques constructives stp que je lameliore
cs_TheHacker
Messages postés442Date d'inscriptionsamedi 23 novembre 2002StatutMembreDernière intervention19 octobre 2005 21 juin 2003 à 13:52
moi perso j'aime pas, et puis si tu trouves pas de progs qui fait des dessins ou des lignes comme tu dis c que t'as pas cherché parce que j'en ai deja vu plusieurs bon @+
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 21 juin 2003 à 13:47
merci ca marche je mettrai le prog a jour et pour transforme le code en picturebox ?
Tellmarch
Messages postés53Date d'inscriptionsamedi 22 mars 2003StatutMembreDernière intervention27 septembre 2005 21 juin 2003 à 12:12
Pour faire une pipette, utilise l'instruction point à l'endroit où tu clique pour trouver la couleur.
jotrash
Messages postés373Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 juin 2007 21 juin 2003 à 07:46
Bon ben a vous les commentaires et aidez moi pour créer ce code pour picture ox et pour faire une pipette
1 juil. 2003 à 00:23
bon alors voila g refait le prog sous form mdi pour pouvoir ourir plusiueurs pages etc bon la je vous lla deconseille car beaucoup de chose bug et desfois quand je clique une form souvre on sait pas pk
merci bcp saros je vais essayer de faire un truc bien demain paske la vais me coucher
bon alors si vous etes reveille vous pouvez tjr regarder mais c'est pas brillant
30 juin 2003 à 21:19
On appelle Ovale ainsi :
Ovale [X du centre], [Y du centre], [Rayon sur X], [Rayon sur Y]
Voilà. Je ne sais pas si tu as vu le cercle trigonométrique (programme de seconde générale), sinon cherche sur internet, il doit y avoir des milliers de pages qui en traitent.
30 juin 2003 à 21:16
Private Sub Ovale(Xc, Yc, Xr, Yr)
Dim Angle As Double
Dim APosX, APosY, CPosX, CPosY
APosX = Xc + Xr
APosY = Yc
For Angle = 0 to 360 Step 20
CPosX = Xc + Xr * Cos(Angle)
CPosY = Yc + Yr * Sin(Angle)
Picture5.Line (CPosX, CPosY, APosX, APosY), Picture2.BackColor
Next Angle
End Sub
Bon là encore je n'ai pas essayé, mais il n'y a pas de raison qu'il y ait de problème.
Bonne continuation.
30 juin 2003 à 17:04
pour ressembler a paint shop pro la fonction est en cours
en fqait saros cette fonction va maider parce que par exemple pour le spray je nepeux pas repetyer le code plusieur fois donc je ne peux pas avoir deux couleurs
je vais essayer ta fronction meric (ce soir ajout d'une nouvelle mise a jour si tous se passe bien)
Pour les ovales si vous avez une solution (enfin g une petite idée mais pour linstant je ne l'ai pas tester)
pour la gomme euh bon c'est pas tellement grave mais je vais essayer de resoudre ce pb
et pour le spray je vais arranger le pb aussi
IMPORTANT!!!: g fait une fonction qui permet de faire tourner limage (a langle voulmue) malheureusement elle est lente est pas parfaite puisque ma picturebox sur lequel je dessine a comme prop sclemode pixel et mon prog marche sous twip comment faire donnez moi des liens ou un code ou une aide
Bon merci encore a tous pour tous ces mesqsages aides et commentaires je vais arranger toutes les pb désselés
mise a jour ce soir normalement
@+ bonne prog
jotrash
29 juin 2003 à 19:48
Public BoutonActu As Byte
Ensuite :
Private Function Couleur() As Long 'Seule une fonction renvoie une valeur
If BoutonActu = 1 Then
Couleur = Picture2.BackColor
ElseIf BoutonActu = 2 Then
Couleur = Picture3.BackColor
End If
End Function
Je ne peux pas l'essayer pour l'instant, j'ai un disque dur qui a pété, du coup je n'ai plus VB et je n'ai pas pu non plus essayer la nouvelle version de ton programme...
29 juin 2003 à 10:15
-normalement quand le spray reste à la mm place, il devrait continuer à taguer
-le curseur devrait être au centre du carré de la gomme
-ovales...
- ensuite si tu veux ressembler à paint shop pro tu deveait limiter la zone de travail
bon en tt cas bravo, je débute en vb et la source est bien commentée
28 juin 2003 à 22:13
26 juin 2003 à 18:31
26 juin 2003 à 16:55
@+
26 juin 2003 à 15:31
bon g essaye le code c'est pas tres rapide effectivement; mais bon cest mieux que le miien
apparemment cette lenteur ne vient pas de mon prog puisque je lai eesayé sur dautre et ne viens pas non plus du fait que ce soit une picture box
je pense sinon faire unpot de peinture qui colorie jusqua un obstacle ou ligne je suis en train de reflechir de dessus
bon @+ e merci enf ait de ton explication saros
26 juin 2003 à 12:45
ElseIf a = True Then
Remplir X, Y, Picture2.BackColor, Picture5.Point(X, Y)
et :
Private Sub Remplir(X As Single, Y As Single, Coul As Long, CoulSol As Long)
On Error GoTo Err_Hnd
If Picture5.Point(X, Y) <> CoulSol Then Exit Sub
Picture5.PSet (X, Y), Coul
Remplir X + 15, Y, Coul, CoulSol
Remplir X, Y + 15, Coul, CoulSol
Remplir X - 15, Y, Coul, CoulSol
Remplir X, Y - 15, Coul, CoulSol
DoEvents
Err_Hnd:
End Sub
Mais j'ai regardé ce que ça donne et ce n'est vraiment pas ça. En plus d'être lent, cet algorithme oublie de pixels un peu partout, de plus, il demande trop de mémoire (au bout d'un petit moment, VB affiche un problème de mémoire stack), d'où le On Error.
26 juin 2003 à 12:33
Si c'est bon, il change la couleur du pixel en la nouvelle couleur : Coul.
Ensuite (et c'est tout l'intêret), il va répéter toute cette opération sur tous les pixels adjacents (sauf diagonales) : ainsi, si le pixel adjacent ne doit pas être changé il ne le sera pas, mais sinon il l'est.
Il répète cette opération indéfiniment, jusqu'à ce que toute la zone soit changée, 'remplie'.
Si tu ne comprends pas, regarde son fonctionnement au pas-à-pas.
Il faut appeller cette fonction ainsi :
Remplir X, Y, Picture2.BackColor, Picture5.Point(X, Y)
Car la zone à remplir est de la couleur située sous le curseur, et la couleur de remplacement est la couleur primaire, et que le point de départ du remplissage est la position du curseur...
Essaie comme ça.
26 juin 2003 à 12:08
Oula c'est vrai j'avais oublié d'enlever les parenthèses...
Euh... à propos, Tellmarch, je connais pas d'autre algorithmes (c'est le seul que j'ai trouvé, mis à part une méthode par lignes horizontales, mais très peu performante et lente). Je vais à l'instant chercher plus d'informations (merci).
Et je vais voir pourquoi cet algorithme ne marche pas dans ton programme.
Pour l'explication :
Remplir, cela consiste à remplacer, dans une zone délimitée par une certaine couleur, cette dite couleur par une autre.
Ce que fait la fonction remplir, c'est voir si le pixel à la position qu'on lui a donné (X et Y) est de la couleur à remplacer (qu'on lui donne aussi : CoulSol)
26 juin 2003 à 10:16
(jsuis debutant faut yaller molo.lol
bon @+
26 juin 2003 à 09:47
ou sinon faudrai tmarcher par api mais bon comme je sais pas comment faire
26 juin 2003 à 08:17
Par contre, cet algo n'est pas vraiment opyimisé Saros, car chaque point sera examiné un grand nombre de fois...
25 juin 2003 à 22:47
Par contre pour ta fonction de remplissage je n'y comprends rien lol
qu'en jessaie de l'implementer il me sort qu'il y a besoin d'un "=" ???
bon ben @+
merci pour tes conseille je vais les executer
25 juin 2003 à 12:11
@+
25 juin 2003 à 11:35
J'ai regardé la nouvelle version, c'est vrai qu'elle arrange beaucoup de trucs par rapport à la première (bravo)...
Pour le remplissage, il y a une méthode récursive qui marche très bien, je ne sais pas si tu la connais :
CoulSol désigne la couleur à remplacer par Coul.
Private Sub Remplir(X as integer, Y as Integer, Coul as Long, CoulSol as Long)
If Picture5.Point(X, Y) <> CoulSol Then Exit Sub
Picture5.PSet (X, Y), Coul
Remplir(X+1, Y, Coul, CoulSol)
Remplir(X, Y+1, Coul, CoulSol)
Remplir(X-1, Y, Coul, CoulSol)
Remplir(X, Y-1, Coul, CoulSol)
End Sub
Je ne l'ai pas essayé (je te laisse le soin de l'implémenter comme tu le sens) mais généralement ça ressemble à ça.
Et plutôt que de créer 10 variables, parmi lesquelles 1 ou 2 ont la valeur True, créé une variable (style 'ModeActuel') qui peut prendre des valeurs numériques, correspondantes aux différents modes de dessin. Sinon, il y a toujours un risque de s'embrouiller...
Pour faire des ovales, pourquoi ne fait-tu pas de fonction 'à la main', puisque apparemment il n'y a pas de fontions Ovale dans un PctBox ?
Bonne continuation
Saros
23 juin 2003 à 21:33
bon ben tjrs ouvert au commentaire notes suggestions aides..
enfin vous savez @+ bonne prog
23 juin 2003 à 19:14
le spray marche genial merci Saros
sinon g essaye quelque chose pour la gomme ca marche po dites moi ou est l'erreur
et ma procedure pour appeler une boite dee plette de couleur marche pas laquelle est-ce
merci de votre aide @+
23 juin 2003 à 17:35
bon j'ameliore le tout et je le réenvoie
merci encore pour tout vos commentaire
23 juin 2003 à 15:37
Queslques trucs à signaler :
-Le spray se content de tracer quelques points autour d'un cercle, et non pas de tracer un cercle rempli... Le spray ressemblerait plutôt à ça :
Picture5.DrawWidth = 1
Randomize
Dim lSX As Single
Dim lSY As Single
For lCnt = 0 To 20
lSX = 100 * Rnd * Cos(Rnd * 6.28) + X
lSY = 100 * Rnd * Sin(Rnd * 6.28) + Y
If d = True Then Picture5.PSet (lSX, lSY), Picture2.BackColor 'le spray
Next lCnt
En tout cas, chez moi ça marche...
-La fonction de remplissage ne marche pas, c'est normal ?
-C'est vrai que la 'gomme' irait mieux sous le nom de 'Undo'...
À part ça, tout fonctionne...
Saros
23 juin 2003 à 13:21
23 juin 2003 à 13:04
23 juin 2003 à 10:33
23 juin 2003 à 09:21
jessaie de faire des menus avec les fonctions enregistrer en tous formats maius bon deja bmp g du mal alors le reeste lol
23 juin 2003 à 09:14
bon je sais mon prog est encore a ameliorer mais bon je trouve ca pas mal quand meme, je voulais surtout un prog de desqsin qui transforme le dessin en fod d'écran, mais maintenant le propg de dessin minterresse et je vais sur tout m preoccuper de ca
voila merci je vais referme la gomme mais par contre pour la pipette; normalement quand on click gauche sur une couleur ca doit la selectionné pour le click gauche du crayon.
enfin bon je vais reessayer mais ce que tu me dis me semble bizarre.
dites moi ce que vous pensez du prog et de la fonction du fond d'écran; je vais amelioreraussi pour que quand on charge ca lance dans la config de chacun car moi on ma enguelé pour ceux qui avait que 800*600
voila @+ et bonne prog
23 juin 2003 à 00:41
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=39391&lngWId=1
Tu y trouveras peut etre quelques solutions et idées, comme tu veux
Bye
23 juin 2003 à 00:09
A améliorer:
- La résolution !! Modifie en mettant une form_load la position de Toolbar1 et Frame2 ! Car en 1024 * 768 c moche
- Lorsqu'on a sélectionné la couleur avec la pisette, il devrait mettre automatiquement le pinceau !
- Il n'y a qu'un seul curseur ??
- La gomme annule le dernier évènemment produit, mais elle devrait plutot éffacer la partie sélectionné, enfin comme dans Paint quoi :)
Voilà, fait comme bon te sembles mais améliore encore un peu ton prog et il va vite devienir excellent ! ;)
22 juin 2003 à 22:11
grossissement du pinceau qui marche parfaitement
pipette avec la procedure point merci Tellmarch
bon ben je suis en train de créedr des menus
laissez moi des notes et des remarques please
@+ et bonne prog
22 juin 2003 à 21:43
avec ajout de la gomme
optimisation de code
donnez mopi une note , des remarques
et surtout dites moi comment faire une pipette car jy arrive po
22 juin 2003 à 21:16
22 juin 2003 à 19:22
euh pour les pictures box g fait un avis sur le tchat on ma dit que cetait mieux
je mets des vrais icones je change pour la taille du curseur ete je le passe en 800*600
@+ bonne prog
22 juin 2003 à 05:15
21 juin 2003 à 20:26
Tu pourrais changer les prop min et max du controle je pense
21 juin 2003 à 19:30
21 juin 2003 à 19:26
j'viesn de mettre mon ordi en 1024*768 c bcp + classe d'un coup ya des bouttons et tout :-p
franchement c pas male alors, excuse d'avoir jugé si vite mais j'pigeais pas.... sinon c quand meme con de devoir apsser par le changement de résolution pour voir ton prog tu devrais modifier ca, voila @+
21 juin 2003 à 18:01
retelecharge la source et passe en 1024*768
21 juin 2003 à 18:00
retelecharge la source et passe en 1024*768
21 juin 2003 à 17:12
21 juin 2003 à 17:07
21 juin 2003 à 17:05
21 juin 2003 à 16:43
tu verras autre chose qu'une feuille blanche
21 juin 2003 à 16:27
cpour ca que tu vois rien paske sinon ya des chose lol
21 juin 2003 à 15:33
j'laurai aps fait comme ca moa, j'trouve ta construction de programme un peu bizarre, chacun sa méthode.
ya rien sur ce prog il ets pas du tt achevé ????
voila bonne continuation
21 juin 2003 à 14:52
21 juin 2003 à 13:52
21 juin 2003 à 13:47
21 juin 2003 à 12:12
21 juin 2003 à 07:46