Faire des petits dessins avec visual basic

Soyez le premier à donner votre avis sur cette source.

Vue 7 475 fois - Téléchargée 673 fois

Description

voila 3 exemple de dessins "complexe" qu'on peut faire en utilisant des points et des lignes sur VB6

Il faut parcontre impérativement utiliser une "pictureBox"

Source / Exemple :


Private Sub Command1_Click()
Dim Ax1, Ay1, Bx1, By1, Cx1, Cy1 As Single
Dim Ax2, Ay2, Bx2, By2, Cx2, Cy2, Dx2, Dy2 As Integer

Ax1 = Picture1.Width / 4
Bx1 = 3 * Ax1
Ay1 = 3 * Picture1.Height / 4
By1 = Ay1

Cx1 = Bx1
Cy1 = Picture1.Height / 4

Picture1.Line (Ax1, Ay1)-(Bx1, By1), vbRed
Picture1.Line (Cx1, Cy1)-(Bx1, By1), vbRed
Picture1.Line (Cx1, Cy1)-(Ax1, Ay1), vbRed

'texture ????
Picture1.DrawWidth = 3
Picture1.PSet (Ax1, Ay1), vbRed
Picture1.PSet (Bx1, By1), vbGreen
Picture1.PSet (Cx1, Cy1), vbBlue

Dim Ax3, Ay3, Bx3, By3, Cx3, Cy3 As Single
Dim NbrPt As Integer
Dim Ax4, Ay4, Bx4, By4, Cx4, Cy4 As Single
Dim Ax6, Ay6, Bx6, By6, Cx6, Cy6 As Single

NbrPt = 20

Ax2 = Abs(Ax1 - Bx1) / NbrPt
Ay2 = Abs(Ay1 - By1) / NbrPt
Bx2 = Abs(Bx1 - Cx1) / NbrPt
By2 = Abs(By1 - Cy1) / NbrPt
Cx2 = Abs(Cx1 - Ax1) / NbrPt
Cy2 = Abs(Ay1 - Cy1) / NbrPt

For y = 0 To NbrPt
'------------------
Ax6 = Ax1 + y * Ax2
Ay6 = Ay1 + y * Ay2
Bx6 = Bx1 + y * Bx2
By6 = By1 + y * By2
Cx6 = Cx1 - y * Cx2
Cy6 = Cy1 + y * Cy2

'---------------------------
NbrPt2 = 30
Ax3 = Abs(Ax6 - Cx1) / NbrPt2
Ay3 = Abs(Ay6 - Cy1) / NbrPt2
Bx3 = Abs(Bx6 - Ax1) / NbrPt2
By3 = Abs(By6 - Ay1) / NbrPt2
Cx3 = Abs(Cx6 - Bx1) / NbrPt2
Cy3 = Abs(Cy6 - By1) / NbrPt2

'ok ! mais apres c'est le mélange des couleurs qui serait vraiment bien !!!!!
'comme en peinture justement !!!! mais comment ????????????????

        For t = 0 To NbrPt2 * 3 / 4
        Ax4 = Cx1 - t * Ax3
        Ay4 = Cy1 + t * Ay3
        Bx4 = Ax1 + t * Bx3
        By4 = Ay1 - t * By3
        Cx4 = Bx1 - t * Cx3
        Cy4 = By1 - t * Cy3
        Picture1.PSet (Cx4, Cy4), vbBlue
        Picture1.PSet (Ax4, Ay4), vbRed
        Picture1.PSet (Bx4, By4), vbGreen
        
        Next

Next

Set couleur = Nothing
couleur = Picture1.Point(Ax1 + 153, Ay1 - 150)

End Sub

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Renfield
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57 -
Dim Ax1, Ay1, Bx1, By1, Cx1, Cy1 As Single

dans ce genre de codes, seul CY1 est un Single
les autres seront des Variant
NISANDSYSTEMS
Messages postés
146
Date d'inscription
vendredi 1 novembre 2002
Statut
Membre
Dernière intervention
13 décembre 2014
-
Bonjour,

Que de code pour un résultat médiocre!
Créer des fonctions de dessin dans un module non dans la feuille.
Comme dit Renfield, chaque variable doit etre déclarée explicitement.

Dim Ax1, Ay1, Bx1, By1, Cx1, Cy1 As Single
devient
! = as single
& = as long
% =as integer
# = as double

Dim Ax1!, Ay1!, Bx1!, By1!, Cx1!, Cy1!
Bon courage.
@+

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.