Comment dessiner le graphe d'une equation mathematique

george69 - 21 déc. 2023 à 19:04
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 - 25 déc. 2023 à 10:53

Bonjour,

je cherche le code qui  permet de dessiner ou tracer le graphe d'une équation mathématique  comme: y=kx^2+b dans vb.net.

dans vb 6 c'est facile avec la commande "pset" mais dans vb.net  je n'ai pas trouvé le bon code
aidez moi à résoudre ce probleme
merci
 

A voir également:

2 réponses

Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 656
22 déc. 2023 à 01:19

Bonjour 

ça dépend du framework que tu as configuré et de la technologie d'IHM.que tu as choisi ( winform, wpf, asp, UIappp)


0
Edith99_2801 Messages postés 5 Date d'inscription vendredi 22 septembre 2023 Statut Membre Dernière intervention 25 décembre 2023
25 déc. 2023 à 08:09

Bonjour.

Pour tracer le graphe d’une équation mathématique comme

y=kx2+b

dans vb.net, vous pouvez utiliser la classe System.Drawing.Graphics qui permet de dessiner des formes et des lignes sur un objet graphique. Vous pouvez créer un objet graphique à partir d’un contrôle, par exemple un PictureBox, et utiliser la méthode DrawLine pour tracer des segments entre les points du graphe. Vous pouvez calculer les coordonnées des points en utilisant la formule de l’équation, en tenant compte de l’échelle et de l’origine du repère. Voici un exemple de code qui trace le graphe de

y=x2−4x+3

dans un PictureBox nommé picGraph :

' Créer un objet graphique à partir du PictureBox
Dim g As Graphics = picGraph.CreateGraphics()

' Définir la couleur et l'épaisseur du trait
Dim pen As New Pen(Color.Blue, 2)

' Définir l'échelle et l'origine du repère
Dim scale As Integer = 10 ' 1 unité = 10 pixels
Dim origin As New Point(picGraph.Width / 2, picGraph.Height / 2) ' Le centre du PictureBox

' Définir les coefficients de l'équation
Dim k As Double = 1
Dim b As Double = -4
Dim c As Double = 3

' Définir l'intervalle de x à tracer
Dim xMin As Double = -5
Dim xMax As Double = 5

' Définir le pas de x
Dim xStep As Double = 0.1

' Initialiser le premier point du graphe
Dim x1 As Double = xMin
Dim y1 As Double = k * x1 * x1 + b * x1 + c

' Tracer le graphe en reliant les points par des segments
For x2 As Double = xMin + xStep To xMax Step xStep
    ' Calculer le deuxième point du segment
    Dim y2 As Double = k * x2 * x2 + b * x2 + c

    ' Convertir les coordonnées des points en pixels
    Dim p1 As New Point(origin.X + x1 * scale, origin.Y - y1 * scale)
    Dim p2 As New Point(origin.X + x2 * scale, origin.Y - y2 * scale)

    ' Tracer le segment entre les deux points
    g.DrawLine(pen, p1, p2)

    ' Passer au segment suivant
    x1 = x2
    y1 = y2
Next

' Libérer les ressources
pen.Dispose()
g.Dispose()

0
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 656
25 déc. 2023 à 10:53

Bonjour Edith

oui mais, ça ne fonctionne qu'en winform.

Il faut savoir qu'aujourd'hui Visual Studio 2022 ne propose plus forcément Winform pas défaut. Il me semble que c'était déjà le cas pour 2019. Donc répondre par défaut en Winform est un risque que je ne prends plus.

En WPF c'est différent, et ASP encore différent etc..., et il peut y avoir des subtilités d'un framework à l'autre.

Ton code, je sais qu'il fonctionnera en winform, framework 4.8.

Mais ne faisant plus de winform depuis longtemps, je ne sais pas ce qu'il en est pour les frameworks Core, 5 (déprécié) 6 et 7.

De plus en 4.8 y'a un contrôle qui fait ça pas trop mal, le Charts, mais il n'a pas été conservé dans les suivants.

Dans les autres, il existe sans doute des nuggets. Pour 6 et 7 c'est sûr, la question a déjà été posée y'a quelques mois.

Il faut savoir qu'aujourd'hui Visual Studio 2022 ne propose plus forcément Winform pas défaut. Il me semble que c'était déjà le cas pour 2019.

Bref, si je lui ai dit que ça dépendait sa technologie d'IHM et son Framework, c'était justement pour éviter de lui donner une réponse qui pourrait ne pas fonctionner.


D'autre part, pour que ton code soit correctement présenté, il faut choisir le langage Basic comme décrit là https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code

Et ta signature n'est pas conforme à la charte, il y a un champ dédié à la promotion de ton site dans ton profil mais celle-ci ne doit pas être faite dans les messages.

0
Rejoignez-nous