Tracer une courbe représentant une fonction

Signaler
Messages postés
3
Date d'inscription
lundi 27 novembre 2000
Statut
Membre
Dernière intervention
15 octobre 2005
-
Messages postés
1
Date d'inscription
mardi 19 février 2008
Statut
Membre
Dernière intervention
13 février 2011
-
Bonjour,








Jesuis 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.


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 !


Pourriez vous m’aider et me corriger ce fichier ?


J’ai 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


' trace de la courbe'
Picture1.ForeColor = RGB(0, 0, 255)
Picture1.DrawWidth = 2
Picture1.DrawStyle = 0
x1 = 200 + tab_valeur(1, 1) * 10
y1 = 250 - tab_valeur(1, 2) * 10
i = 2


For i = 1 To Nb_row
x2 = 200 + tab_valeur(i, 1) * 10
y2 = 250 - 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

4 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
115
Voir les sources du site qui parle de cà...

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
Messages postés
8
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
29 juillet 2010

merci pour cette information
Messages postés
8
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
29 juillet 2010

sil ya des autres commende voisi mon @ bassemfarton@yahoo.fr et merci
Messages postés
1
Date d'inscription
mardi 19 février 2008
Statut
Membre
Dernière intervention
13 février 2011

Bonjour,
Je suis un débutant en VBA, j'ai crée un code pour tracer un
rectangle, et le code est celui-ci:

Sub rectangle()

Range(Cells(12, 4), Cells(12, 7)).Interior.ColorIndex = 19
'Range(Cells(12, 4), Cells(12, 7)).Borders.LineStyle = xlNone
Range(Cells(12, 4), Cells(12, 7)).Borders.LineStyle = xlContinuous

For j = 1 To N

Range(Cells(12 + j, 4), Cells(12 + j, 7)).Interior.ColorIndex = 0
Range(Cells(12 + j, 4), Cells(12 + j, 7)).Value = ""
'Range(Cells(12 + j, 4), Cells(12 + j, 7)).Borders.LineStyle = xlNone
Range(Cells(12 + j, 4), Cells(12 + j, 7)).Borders.LineStyle = xlContinuous

Next j

End Sub

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.

Quelqu'un pourrait m'aider s'il vous plait?