Benutzer mit den meisten Antworten
schnelle Grafik mit VB.NET

Frage
-
Hallo,
ich frage mich wie ich ein altes VB6-Projekt von mir zur Darstellung von Messdaten nach VB.NET migrieren kann,
insbesondere wie ich das Zeichnen und scrollen der Grafik realisieren kann.
Ich lese kontinuierlich Messdaten, plotte sie in ein x-y-Diagramm welches dann immer nach links wegscrollt.
https://ibb.co/HV1VvKC
- Bearbeitet M_a_t_t_h_i_a_s Dienstag, 29. Oktober 2019 14:16
Antworten
-
Hi,
auf meiner Homepage habe ich ein Beispiel, was Deinen Anforderungen entspricht. Einem UserControl werden Werte (Arrays) übergeben, die dann als Linien-Chart dargestellt werden.Ein anderes Beispiel stellt einen Oszillographen dar.
--
Best Regards / Viele Grüße
Peter Fleischer (former MVP for Developer Technologies)
Homepage, Tipps, Tricks
- Bearbeitet Peter Fleischer Mittwoch, 30. Oktober 2019 11:10
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 5. November 2019 06:50
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 14. November 2019 14:35
Alle Antworten
-
Hallo Matthias,
willst Du das eher von Hand zeichnen? Oder suchst Du ein fertiges Control?
Welches Framework willst Du verwenden? .NET Core? .NET Framework? ...?
Welche Projektart schwebt dir vor? WPF? WinForms? UWP? Xamarin? ASP.NET? ...?
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport -
mit Bordmittlen wäre man natürlich unabhängig und die Messdaten zu plotten ist ja im Prinzip kein Problem, zumindest war es in VB6 so :-)
Als Framework käme NET 2.0 aufwärts in Frage und es soll eine Windows Form Anwendung / VisualBasic NET sein die unter Windows 7 / 10 laufen soll.
Gestern Abend habe ich noch dieses Control gefunden:
https://www.vbarchiv.net/tipps/tipp_1611-autoredraw-eigenschaft-in-net-20-nachbauen.html
Es funktioniert soweit.
Jetzt müsste ich noch probieren wie ich Pixelfarben auslesen kann und wie ich die Bitmap nach links verschiebe, das hatte ich unter VB6 mit GetPixel und BitBlt gemacht... -
Hi,
auf meiner Homepage habe ich ein Beispiel, was Deinen Anforderungen entspricht. Einem UserControl werden Werte (Arrays) übergeben, die dann als Linien-Chart dargestellt werden.Ein anderes Beispiel stellt einen Oszillographen dar.
--
Best Regards / Viele Grüße
Peter Fleischer (former MVP for Developer Technologies)
Homepage, Tipps, Tricks
- Bearbeitet Peter Fleischer Mittwoch, 30. Oktober 2019 11:10
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 5. November 2019 06:50
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 14. November 2019 14:35
-
Hallo,
folgender Code:
'pb ist eine picturebox auf einem Formular:
dim g as graphics
With pb
.Image = New Bitmap(.Width, .Height)
g = Graphics.FromImage(.Image)g.Clear(ColorTranslator.FromOle(HintergrundFarbe))
.Invalidate()
End With
'zeichnen dann mit:
g.drawline ... ect
pb.invalidate
'wenn ich nun die Farbe eines Pixels auslesen will mache ich folgendes:
Public Function GetPixelBMP(ByVal X As Int32, ByVal Y As Int32) As Int32
Using picBitmap As Bitmap = New Bitmap(AGBox.picGrafik.Image)
GetPixelBMP = ColorTranslator.ToOle(picBitmap.GetPixel(0, 0))
End Using
End Function
Ich denke das ist ziemlich langsam, kann man das eleganter machen?