Le tracé d'une courbe représentant une fonction

Le tracé d'une courbe représentant une fonction - VB/VBA/VBS - Programmation

Marsh Posté le 16-10-2005 à 13:48:52    

Bonjour,
 
 
                   Je  suis un bricoleur débutant en visual basic
Je voudrais tracer la représentation graphique d’une fonction mathématique.
Ci-joint, vous trouverez un projet.
1)- Je crée une fenêtre.
2)- Je trace les axes des  coordonnées ( X et Y )
3)- Je trace la feuille de papier millimétré
Comme à l’école quand j’étais plus jeune….
Mais, je ne sais pas coder le tracé de la courbe.
A partir de la ligne de commentaire :
' Ecriture de la fonction dont on veut tracer la courbe'
C’est faux !De chez tout faux !
Pourriez vous m’aider à  corriger le fichier code ci-joint ?
J’ai mis plein de commentaires, car comme je vous dis ci-dessus, je suis assez primaire.( ces commentaires ne sont pas pour vous, mais pour moi)
J’ai choisi le «  millimètre » comme échelle de tracé
 
                                                      Merci beaucoup par avance
 
*************************************************************************
Le code
Option Explicit
 
Private Sub Command1_Click()
Dim d, i As Single
'Definition de la fenetre de trace'
Picture1.Left = 10
Picture1.Top = 15
Picture1.Width = 320
Picture1.Height = 160
Picture1.AutoRedraw = True
Picture1.ForeColor = RGB(0, 0, 0)
Picture1.DrawWidth = 2
Picture1.DrawStyle = 0
'trace de l axe vertical des ordonnés Y'
Picture1.Line (160, 5)-(160, 150)
'trace de l axe horizontal des abscisses X'
Picture1.Line (20, 80)-(300, 80)
'trace de la pointe fleche de l axe vertical'
Picture1.Line (160, 5)-(157, 10)
Picture1.Line (160, 5)-(163, 10)
'trace de la pointe fleche de l axe horizontal'
Picture1.Line (300, 80)-(297, 77)
Picture1.Line (300, 80)-(297, 83)
'ecriture de la lettre Y sur l axe vertical'
    Picture1.CurrentX = 153
    Picture1.CurrentY = 5
    Picture1.FontSize = 14
    Picture1.Print "Y"
'ecriture de la lettre X sur l axe horizontal'
    Picture1.CurrentX = 297
    Picture1.CurrentY = 83
    Picture1.FontSize = 14
    Picture1.Print "X"
'ecriture des marques en positif sur l echelle des ordonnés Y'
For i = 1 To 6
Picture1.Line (160, 80 - (i - 1) * 10)-(159, 80 - (i - 1) * 10)
'ecriture des chiffres en positif sur l echelle des ordonnés Y'
Picture1.FontSize = 6
Picture1.CurrentX = 156
Picture1.CurrentY = 68 - (i - 1) * 10
Picture1.Print Str$(1 + (i - 1) * 1)
Next i
'ecriture des marques en negatif sur l echelle des ordonnés Y'
For i = 1 To 7
Picture1.Line (160, 80 + (i - 1) * 10)-(159, 80 + (i - 1) * 10)
'ecriture des chiffres en negatif sur l echelle des ordonnés Y'
Picture1.FontSize = 6
Picture1.CurrentX = 156
Picture1.CurrentY = 80 + (i - 1) * 10
Picture1.Print Str$(0 - (i - 1) * 1)
Next i
'ecriture des marques en positif sur l echelle des abscisses X
For i = 1 To 12
Picture1.Line (160 + (i - 1) * 10, 80)-(160 + (i - 1) * 10, 81)
'ecriture des chiffres en positif sur l echelle des abscisses X
Picture1.FontSize = 6
Picture1.CurrentX = 169 + (i - 1) * 10
Picture1.CurrentY = 83
Picture1.Print Str$(1 + (i - 1) * 1)
Next i
'ecriture des marques en negatif sur l echelle des abscisses X
For i = 1 To 12
Picture1.Line (160 - (i - 1) * 10, 80)-(160 - (i - 1) * 10, 81)
Picture1.FontSize = 6
Picture1.CurrentX = 148 - (i - 1) * 10
Picture1.CurrentY = 83
Picture1.Print Str$(-1 - (i - 1) * 1)
Next i
'trace de la grille verticale '
Picture1.DrawWidth = 1
Picture1.DrawStyle = 2
For i = 1 To 27
Picture1.Line (20 + (i - 1) * 10, 150)-(20 + (i - 1) * 10, 10)
Next i
'trace de la grille verticale'
For i = 1 To 19
Picture1.Line (20, 180 - (i - 1) * 10)-(280, 180 - (i - 1) * 10)
Next i
'ecriture du signe + pour positionner le centre du tamis'
    Picture1.CurrentX = 159
    Picture1.CurrentY = 78
    Picture1.FontSize = 4
    Picture1.Print "+"
 
 
 
 
 
 
 
' Ecriture de la fonction dont on veut traçer la courbe'
Dim tab_valeur(1 To 1000, 1 To 1000) As Single
Dim j, Nb_row As Integer
Dim X, Y, X_Inf, X_sup, s, x1, x2, y1, y2 As Single
 
 
X_Inf = Val(Text1.Text)
X_sup = Val(Text2.Text)
s = 0.1
Nb_row = ((X_sup) - (X_Inf) / s)
'ReDim tab_valeur(1 To Nb_row, 1 To 2)'
j = 1
For X = X_Inf To X_sup Step s
Y = 3 * (X * X) + 4
tab_valeur(j, 1) = X
tab_valeur(j, 2) = Y
j = j + i
Next X
 
' trace de la courbe'
Picture1.ForeColor = RGB(0, 0, 255)
Picture1.DrawWidth = 2
Picture1.DrawStyle = 0
x1 = 150 + tab_valeur(1, 1) * 10
y1 = 70 - tab_valeur(1, 2) * 10
i = 2
 
For i = 1 To Nb_row
x2 = 150 + tab_valeur(i, 1) * 10
y2 = 70 - tab_valeur(i, 2) * 10
Picture1.Line (x1, y1)-(x2, y2)
x1 = x2
y1 = y2
Next i
 
 
 
End Sub
Private Sub HScroll1_Change()
HScroll1_Scroll
End Sub
 
 
Private Sub HScroll1_Scroll()
Text1.Text = HScroll1.Value
End Sub
 
 
Private Sub HScroll2_Change()
HScroll2_Scroll
End Sub
 
 
Private Sub HScroll2_Scroll()
Text2.Text = HScroll2.Value
End Sub
 
 
 
 
Scalpa6- e-mail :jpbpascal@free.fr

Reply

Marsh Posté le 16-10-2005 à 13:48:52   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed