VisualBasic linearen Graphen aus Funktion zeichnen lassen

faCe_r

Cadet 4th Year
Registriert
Mai 2012
Beiträge
119
Moin,

wir nehmen gerade in Informatik das Thema "Angewandte Informatik", wo wir mathematische Problemstellungen in Excel/OpenOfficeCalc und Visual Basic 2010 lösen.

Bisher haben wir in VB aber nur quadratische Gleichungen gemacht, wo man z.B. die beiden X-Koordinaten errechnen lassen muss.

Ich habe mir gedacht, einen Schritt weiter zu gehen, und mit VB (bei mir 2012) zu schreiben, dass eine lineare Funktion als Graph darstellen kann.

In Excel habe ich bereits ein Tabellenblatt, wo ich die Werte m und b der Formel "y=m+b" variabel bestimmen kann. Mit diesen wird dann eine Wertetabelle mit der Spannweite -10 bis +10 auf der X-Achse. Daraus errechnet Excel dann einen Graphen in einem Koordinatensystem.

Diese Vorgehensweise möchte ich nun auf VB übernehmen, nur scheitere an folgenden Sachen:

  • Wie kann ich in VB eine Tabelle ähnlich derer in Excel erstellen?
  • Wie lasse ich VB etwas zeichnen? Ich habe gehört, dass man dafür eine PictureBox braucht. Mehr weiß ich aber nicht.

Das ist keine Hausaufgabe, sondern ein Privatvorhaben, also keine Bange.

Ich habe hier zwar was in der Richtung gefunden, aber es ist einfach zu hoch für mich:

https://www.computerbase.de/forum/threads/visual-basic-sinusfunktion-zeichnen.305534/

MfG, David
 
Schau dir mal die Graphics-Klasse an. Speziell die Funktion DrawLine könnte interessant sein.

Wie man das dann mit einer PictureBox benutzt, steht schon in dem Thread, den du gefunden hast:

Code:
Dim graph As System.Drawing.Graphics = PictureBox1.CreateGraphics
Dim pen As New System.Drawing.Pen(System.Drawing.Color.Black)
[...]
graph.DrawLine(pen, x1, x2, y1, y2)

Und zur Tabelle: Da könntest du sowas wie ein ListView nehmen.
 
Danke für die Antwort, Lunke.

Das mit dem Listview habe ich herausgefunden und arbeite mich grad ein. Hoffe, dass Excel-Funktionen möglich sind - dann wäre der Teil schon mal beseitigt.

In die Graphics-Klasse lese ich mich nun auch ein, habe Dank. :)
 
Zurück
Oben