Hallo, Ich nehme zur Zeit Daten über eine serielle Schnittstelle (in einem extra Thread) entgegen und möchte diese gerne auf einer bestimmten Fläche graphisch als Plot darstellen. Dabei soll der Plot live aktualisiert werden und dabei nach rechts wandern. Das Fenster soll aber resizable sein und auch die X Auflösung soll einstellbar sein. Die Skalierung in Y Richtung natürlich sowieso. Das Ganze unter wxWidgets. Im Moment benutze ich wxPlotCtrl, aber das scheint teilweise nicht so ganz gut geeignet zu sein für Live Plots. Deshalb wollte ich mir ein eigenes Control bauen. Soweit so gut, leider fehlt mir der Ansatz. Also, wann allokiere ich wie viel Speicher. Was passiert beim Resizen? Ein größerer Speicherblock wird angefordert, vom alten umkopiert und der alte wird gelöscht? Hat schon mal jemand sowas selbst gebaut und kann ein paar hilfreiche Tipps geben? Nicht, dass ich mich da im falschen Konzept ver-renne.
Erstmal würde ich das ganze aufteilen: - Einmal die Daten erfassen in einer Struktur (xy koordinaten, verbindung der Punkte mit Linien, Strichstärken, Farben) - Zeichnen auf Zeichenfläche. Soll das ganze skalieren bei größer/kleiner? Dann bei resize x und y skalierungsfaktor berechnen und neuzeichen, ebenso beim hinzufügen von Werten. Wie das konkret aussehen soll kann ich dir leider nicht sagen da ich eher in Java als in C++ zuhause bin, habe aber soetwas ähnliches mal für das erstellen von Diagrammen aus Meßreihen gebaut, mit automatischer Achsenbeschriftung und Legende.
Wenn du wxWidgets nimmst, wirst du deine Gründe haben. Falls du aber noch flexibel bist und auch Qt in Frage kommt, dann gibt es dafür das Paket qwt, mit dem sowas recht simpel geht.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.