Dessin

FanchyTonnerre Messages postés 13 Date d'inscription vendredi 24 novembre 2006 Statut Membre Dernière intervention 26 juillet 2010 - 6 déc. 2006 à 10:34
FanchyTonnerre Messages postés 13 Date d'inscription vendredi 24 novembre 2006 Statut Membre Dernière intervention 26 juillet 2010 - 8 déc. 2006 à 19:16
je cherche la fonction qui me permettrait de faire zones de formes diverses dans lesquelles je pourrais mettre des couleurs

pour le moment je n'ai reussi a trouver que la maniere de faire des lignes et donc pas de possibilite de remplissage
je suis bien tomber sur un code de dessin vectoriel mais mon probleme est de pouvoir garder de maniere permanente mes zones et donc par la suite de pouvoir les rappeller.

Merci par avance de pouvoir me depanner

:)

7 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
6 déc. 2006 à 13:01
tout dépend du type de zone. T'es-tu intéressé aux API Graphiques de Windows ?

Va voir ma source ProgOtoP Icon Creator par exemple avec le tracé de plusieurs formes standard.
0
le cancre Messages postés 292 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 27 novembre 2009
6 déc. 2006 à 13:01
je cherche la fonction qui me permettrait de faire zones de formes diverses dans lesquelles je pourrais mettre des couleurs
pour remplir ta zone de couleur tu as besoin de la fonction ExtFloodFil 

un exemple :
Private Declare Function ExtFloodFill Lib "Gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal crColor As Long, ByVal wFillType As Long) As Long
Dim X1, Y1, Draw, Temp

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Draw = 1If Button 1 Then X1 X: Y1 = Y
If Button <> 2 Then Exit Sub
Randomize
Picture1.FillColor = RGB(Int(Rnd * 255), Int(Rnd * 255), Int(Rnd * 255))
ExtFloodFill Picture1.hdc, X, Y, Picture1.Point(X, Y), 1
End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
If Draw = 1 Then
Picture1.Line (X1, Y1)-(X, Y)
X1 = X
Y1 = Y
End If
End If
End Sub

Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Draw = 0
End Sub

mode d'utilisation :
click gauche pour dessiner une forme,click droit pour la remplir de couleur
0
le cancre Messages postés 292 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 27 novembre 2009
6 déc. 2006 à 14:26
pour que le code marche, tu dois mettre pour la picturebox comme propriété
* scalemode = pixel
* drawstyle = 0 - solid
* fillstyle = 0 -solid
 
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
6 déc. 2006 à 14:29
"mais mon probleme est de pouvoir garder de maniere permanente mes zones et donc par la suite de pouvoir les rappeller"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
le cancre Messages postés 292 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 27 novembre 2009
6 déc. 2006 à 15:02
apres il stock dans un tableau les coordonnées de la zone, meme chose pour ExtFloodFill
on peut mettre un msgbox lui demandant de valider ou non la zone,si oui il enregistre le tableau dans un fichier texte
...apres il suffit de lire les coordonnées se trouvant dans le fichier texte pour "pouvoir les rappeller"

si j'ai tout faux, qu'on me le dise ^^
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
6 déc. 2006 à 20:30
Ami Le Cancre :

1) ExtFloofFill n'a nul besoin des coordonnées de la zone (un seul point situé à l'intérieur suffirait)
2) ta solution reste acceptable pour des aires polygonales "simples"... mais te rends-tu compte du nombre d'informations qu'il te faudrait "stocker" (comme tu dis), pour des périmètres complexes ? (pratiquement du point par point).


Pour éviter celà ? La mémorisation, en effet, de lignes et courbes vectorielles ( format Wmf, donc) mais alors :.... adieu les facilités liées à un dib (bmp donc), dont ..... ExtFloodFill...


On pleure ensemble ?
0
FanchyTonnerre Messages postés 13 Date d'inscription vendredi 24 novembre 2006 Statut Membre Dernière intervention 26 juillet 2010
8 déc. 2006 à 19:16
en fait il faudrait que mes zones se creer un peu comme sur powerpoint avec la fonction freeform ou l'on met toutes les valeurs de chaque point en gros un carre 4 point donc 4 valeurs freeform pour pouvoir dessinner ce dernier....
alors est ce que la fionction freeform existe dans vb 6 et surtout est elle facile a utilisee
 merci par avance
0
Rejoignez-nous