Forum: PC-Programmierung Graph mit visual basic 2005 zeichnen


von Gast (Gast)


Lesenswert?

Hallo zusammen!

Ich benutze Visual Basic 2005 Express um Messdaten von einem 
Microcontroller, der an einer seriellen Schnittstelle des PC's
hängt zu empfangen. Soweit in Ordnung.

Nun versuche ich die empfangenen Werte graphisch darzustellen.
Ich benutze dazu die Panel Windows Form und zeichne dann beim Paint 
Ereigniss mit Hilfe des Drawline Befehls eine Linie vom vorherigen Wert 
zum aktuellen Wert. Das alles wird durch einen Timer im eingestellten 
Intervall durch den Refresh Befehl widerholt.

Hier der beschriebene Codeteil:

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As 
System.EventArgs) Handles Timer1.Tick
        Panel1.Refresh()
    End Sub

    Private Sub Panel1_Paint(ByVal sender As System.Object, ByVal e As 
System.Windows.Forms.PaintEventArgs) Handles Panel1.Paint
        xa = xe
        xe = xe + 1
        ya = ye
        ye = wert
        e.Graphics.DrawLine(Pens.Black, xa, ya, xe, ye)
    End Sub

Mein Problem ist jetzt, dass nach jedem Refresh des Panel1 der Inhalt 
gelöscht wird und nur die aktuelle Linie gezeichnet wird. Es entsteht
also eine "wandernde" Linie anstatt einer Messkurve. Gibt es eine 
Möglichkeit, das der Inhalt des Panels erhalten bleibt und die neue
Linie einfach dazu gezeichnet wird?

von Andreas W. (Gast)


Lesenswert?

kurz gesagt nein, du musst immer alles neuzeichnen.

schau dir mal http://zedgraph.org/wiki/index.php?title=Main_Page an.

Der ist ganz hübsch und mit nicht also vielen Punkten. bleibt er auch 
ausreichend schnell.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.