jpbpascal
Messages postés3Date d'inscriptionlundi 27 novembre 2000StatutMembreDernière intervention15 octobre 2005
-
15 oct. 2005 à 18:51
lochard
Messages postés1Date d'inscriptionmardi 19 février 2008StatutMembreDernière intervention13 février 2011
-
13 févr. 2011 à 21:32
Bonjour,
Jesuis un bricoleur débutant en visual basic
Je voudrais tracer la représentation graphique dune fonction mathématique.
Ci-joint, vous trouverez un projet.
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'
Cest faux !
Pourriez vous maider et me corriger ce fichier ?
Jai choisi le « millimètre » comme échelle de tracé
Merci par avance
***************************************************************************
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 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
N est la variable globale, donc je m'attendais quand je diminue la valeur de N mon rectangle diminue aussi, c'est pas le cas, il garde la plus grande valeur de N.