Laden...

Funktion(Kurve) zeichnen

Erstellt von Wax vor 16 Jahren Letzter Beitrag vor 16 Jahren 3.093 Views
Wax Themenstarter:in
731 Beiträge seit 2006
vor 16 Jahren
Funktion(Kurve) zeichnen

Hallo,

ich habe mal eine Frage an die alten Hasen im Datenvisualisierungsgeschäft. 🙂
Ich möchte gerne Daten (Funktionsergebnisse), welche über eine serielle Schnittstelle reinkommen, grafisch darstellen. Also ein typisches X-Achse-, Y-Achse-Szenario.
Auf welche Art und weise würdet ihr sowelche Daten darstellen?
Bringt es was, diese Messergebnisse per GDI+ (Curve usw...) in eine PictureBox zu zeichnen, oder gibt es da viel bessere Wege?

MfG
wax

ps:Ich habe ehrlich gesagt jetzt schon Angst vor der Leistung der Anwendung, wenn ich bedenke für alle Zeichenaktionen "Invoken" zu müssen. Hilfeee

2.760 Beiträge seit 2006
vor 16 Jahren

Kommt drauf an wie viele Punkte zu hast und wie oft deine Ansicht aktualisiert wird. In der Regel sollte die GDI für so was schon passen, such mal im Forum nach "Funktionsplotter". Das müsste das sein was du suchst.

148 Beiträge seit 2006
vor 16 Jahren

such mal in diesem Zusammenhang auch nach "ZEDGraph" 🙂

I cna tpye 300 wrods pre mnuite!

I
1.739 Beiträge seit 2005
vor 16 Jahren

GDI+ ist schon ok. GDI und DirektDraw(WPF) können unter Umständen(Graka-abhängig) zwar schneller malen, das ist aber nicht unbedingt wesentlich bei dieser Form der Darstellung.
Ich halte es für wichtig das möglichst wenig Rechenzeit für das bisschen Visualisierung verbraten wird. Die meisten frei schwebenden/erhältlichen Komponenten malen einfach die Kurve(n) komplett neu und das frisst einfach zuviel Rechenzeit(egal ob GDI, GDI+ oder DD). Ein Grund wäre einfach die Datenumwandlung in Zeichenoperationen(das jedesmal neu für eigentlich bereits erledigte Daten).

Der simple Trick ist einfach die Zeichnung zu puffern und nur neue Daten periodisch dazu zu geben.
Der einfachste und performanteste Fall wäre eine Bitmap als Puffer, muss aber nicht der angemessenste Fall sein. Für einen angessenen Lösungsvorschlag fehlt es an detallierteren Informationen zur Darstellung(fixer Bereich, scrollbar, zoom, variable Achsenbereiche).

K
13 Beiträge seit 2008
vor 16 Jahren

ps:Ich habe ehrlich gesagt jetzt schon Angst vor der Leistung der Anwendung, wenn ich bedenke für alle Zeichenaktionen "Invoken" zu müssen. Hilfeee

Wenn ich mich recht erinnere geht es auch in .net ohne GDI+ und große Mühen. Schau dir mal das hier
http://www.activevb.de/cgi-bin/upload/download.pl?id=3022 an. Das ist zwar VB.net, sollte aber leicht nach c# portierbar sein. Im Beispiel werden Wave-Dateien angezeigt (auch scroll und Zoom ist möglich) aber es sollte mit beliebigen Daten, auch mit dynamisch gelesenen, funktionieren.

Klaus