Laden...

Womit erstelle ich am besten Live-Diagramme?

Erstellt von PierreDole vor 3 Jahren Letzter Beitrag vor 3 Jahren 510 Views
P
PierreDole Themenstarter:in
74 Beiträge seit 2017
vor 3 Jahren
Womit erstelle ich am besten Live-Diagramme?

Moin, ich möchte ein Diagramm programmieren, das live mit Daten gefüttert wird, 30 mal in der Sekunde. Außerdem ist die Zeitachse auch live, d.h.
ältere Daten sollen aus dem Diagramm herausscrollen.

Was nehme ich dafür?

Canvas war meine erste Idee. Aber macht es Sinn ein Canvas mit Hunderten von Children zu fluten?

Oder doch lieber mit Bitmap arbeiten. Aber da weiß ich nicht, ob der GUI-Thread da mitkommt. Der wird jetzt schon etwas beansprucht.

Oder gibt es da noch eine ganz andere Möglichkeit?

Ahja, das ganze ist in WPF. Wobei auch hier die Frage: bietet C# für grafische Darstellungen etwas besseres an als WPF?

16.806 Beiträge seit 2008
vor 3 Jahren

Ein Diagramm ist für die visuelle Darstellung des menschlichen Auges gedacht.

Aber da weiß ich nicht, ob der GUI-Thread da mitkommt. Der wird jetzt schon etwas beansprucht.

WPF versucht prinzipiell Inhalte so selten wie möglich zu aktualisieren - das kostet schließlich Resourcen; gibt es nichts, dann ist die Framerate = 0.
Ändern sich Inhalte oder existieren Animationen, dann orientiert sich die Frame-Rate nahe an der Refresh-Rate des Monitors.

Das menschliche Auge mag vielleicht 120 Hz und Co wahrnehmen, dass es kein Motion Blur gibt; aber ich bezweifle, dass Du annähernd die maximale Refresh Rate (von WPF) brauchst um die Inhalte eines Diagramms darzustellen und Dir die Möglichkeiten weit weit weit weit ausreichen.

C# für grafische Darstellungen etwas besseres an als WPF?

C# ist eine Programmiersprache; die bietet Dir hier also gar nichts.

.NET bietet Dir aber WPF und neben WPF eben natürlich auch die Möglichkeit eigene Dinge zu zeichnen und natürlich auch sowas wie Unity.
Aber damit wirst Du wohl eher über das Ziel hinausschießen; jedenfalls mit den Infos, die Du preisgibst.

P
441 Beiträge seit 2014
vor 3 Jahren

Wenn es "nur" ein Chart ist (also z.B. LineChart), da brauchst du das nicht selber programmieren und zeichnen. Dafür gibt es zuhauf fertige Bibliotheken, die dir das abnehmen.

OxyPlot, D3, ...