FanchyTonnerre
Messages postés13Date d'inscriptionvendredi 24 novembre 2006StatutMembreDernière intervention26 juillet 2010
-
6 déc. 2006 à 10:34
FanchyTonnerre
Messages postés13Date d'inscriptionvendredi 24 novembre 2006StatutMembreDernière intervention26 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.
le cancre
Messages postés292Date d'inscriptionmercredi 25 octobre 2006StatutMembreDernière intervention27 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
le cancre
Messages postés292Date d'inscriptionmercredi 25 octobre 2006StatutMembreDernière intervention27 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"
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 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...
FanchyTonnerre
Messages postés13Date d'inscriptionvendredi 24 novembre 2006StatutMembreDernière intervention26 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