Re: Grafik (Diagramm) zeichnen in Vb.net
Geizhals » Forum » Programmierung » Grafik (Diagramm) zeichnen in Vb.net (2 Beiträge, 133 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
Grafik (Diagramm) zeichnen in Vb.net
15.03.2004, 12:10:57
Hallo,

nachdem vorher die Formatierung nicht gepasst hat, noch einmal mein Problem:

ich möchte mehrere Arten von Diagrammen (LInien- und Flächendiagramme) in einem vb.net Projekt darstellen. (Entwicklungsumgebung: Visual Studio.net)

Allerdings scheitere ich an der Erstellung eben dieser Grafiken.

Mit der Hilfe (und Internet-Recherche) wobei die Hilfe nichtssagend ist, habe ich folgendes fabriziert:


Public Sub showLineGraph(ByVal intTmpCol As Int16, ByVal areaToDraw As Object)
  'Zählvariable für Datensätze zum Zeichnen
  Dim intTmpRow As Integer
  'Pen für neue Linie, Farbe blau, Stärke 5
  Dim Pen As Pen = New Pen(System.Drawing.Color.Blue, 5)
  'pointDraw speichert die einzelnen Punkte
  Dim pointDraw() As PointF
  'graLine ist das Control-Element für die Grafik
  Dim graLine As Graphics
  'Die einzelnen Punkte werden errechnet (.count-1 da Index bei 0 beginnt)
  For intTmpRow = 0 To tableInput.Rows.Count - 1
    'Falls eine Datumsspalte existiert, wird das Datum als Beschriftung für die x-Achse gewählt
    If tableInput.Columns.Contains("date") Then
      pointDraw(intTmpRow) = New PointF(tableInput.Rows(intTmpRow).Item("date"), tableInput.Rows(intTmpRow).Item("Feld" & intTmpCol - 1))
    Else
      'Sonst wird einfach eine fortlaufende Zahl verwendet
      'Wenn kein Wert enthalten ist, wird abgebrochen
      If tableInput.Rows(intTmpRow).Item("feld" & intTmpCol + 1) = Nothing Then
        Exit For
      Else
        'Array wird vergrößert
        ReDim Preserve pointDraw(intTmpRow)
        'Neuer Punkt erstellt
        pointDraw(intTmpRow) = New PointF(intTmpRow + 1, tableInput.Rows(intTmpRow).Item("Feld" & intTmpCol + 1))
      End If
    End If
  Next
  'graLine-Bereich wird auf die übergebene Form/Control gesetzt und neu initialisiert
  graLine = areaToDraw.creategraphics
  'Linie wird gezeichnet
  graLine.DrawPolygon(Pen, pointDraw)
  'In den Vordergrund
  areaToDraw.show()

End Sub


Es ist eine Funktion, die den Zeichenbereich, und die Spalte der öffentlichen Datentabelle beinhaltet.

Wo liegt der Fehler?


mfg

Penguin
Antworten PM Alle Chronologisch
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung