Forum: PC-Programmierung C# und Zeichnen


von Farin (Gast)


Lesenswert?

Hei Leute

Ich habe ein gröberes Problem mit C#. Ich versuche einen Graphen 
bestehend aus 3 Layern zu programmieren. Der erste Layer soll gewisse 
Informationen hinter dem Graphen anzeigen. Der zweite den eigentlichen 
Graphen mit Kordinatensystem und den Linienbezeichnungen. Der 3. Layer 
soll die eigentlichen Linien etc. beinhalten.

Leider schaffe ich es nicht dies in C# umzusetzen. Da der 3. Layer sehr 
viel Daten zeichnen muss fällt die OnPaint Methode weg weil sonst das 
Ganze viel zu langsam wird. BufferedGraphics hab' ich mir angeschaut 
aber da fehlt mir ein Weg wie das Ganze transparent wird(Wird soviel ich 
weiss nicht unterstützt).

Gibt es eine andere Idee wie ich am geschicktesten Layer zeichnen kann 
ohne immer alles neu zeichnen zu müssen.(Ich erhalte über TCP/IP alle 
200 ms neue Messwerte für den Graphen!)

Danke im Voraus und Gruss

Farin

von Peter II (Gast)


Lesenswert?


von UR-Schmitt (Gast)


Lesenswert?

Farin schrieb:
> Ich erhalte über TCP/IP alle
> 200 ms neue Messwerte für den Graphen!)

Reduktion?
Wenn du alle 200 ms die angezeigten Kurven änderst ergibt das für den 
Betrachter win wüstes Gezappel aus dem kein Mensch mehr vernünftig 
Informationen herauslesen kann.

von Farin (Gast)


Lesenswert?

Nicht ändern.. Ich füge alle 200ms neue Werte ein.

Das ganze sollte sich dann flüssig erweitern und nicht einfach wie mit 
der OnPaint Methode jedesmal von neuem zeichnen lassen. Der Graph sollte 
einfach weitergeführt werden.

von Markus V. (valvestino)


Lesenswert?

Hallo Farin,

Du musst ja nicht den kompletten Graph neu zeichnen. Die Basisklasse 
Control bietet die Methode Invalidate(). Mit deren verschiedenen 
Überladungen kannst Du erreichen, dass immer nur geänderte Teil neu 
gezeichnet werden muss.

Gruß
Markus

von Lysimachos (Gast)


Lesenswert?

Hi,

vielleicht hilft dir "ZedGraph" weiter. Bietet sehr viele Möglichkeiten 
im Bereich Graphen usw. in Verbindung mit C#.
Einfach mal googeln.

Grüße

von Sven H. (dsb_sven)


Lesenswert?

Wird aber leider nicht mehr weiter entwickelt und ist auf Stand 2008 
stehen geblieben...

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
Noch kein Account? Hier anmelden.