www.mikrocontroller.net

Forum: PC-Programmierung Live Graph, Live Plot unter C++ (wxWidgets)


Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.