www.mikrocontroller.net

Forum: PC-Programmierung C# und Zeichnen


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Farin (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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

Autor: Peter II (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
ich würde man schauen ob es mit DirektX geht.

http://msdn.microsoft.com/en-us/library/windows/de...

Autor: UR-Schmitt (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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.

Autor: Farin (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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.

Autor: Markus Volz (valvestino)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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

Autor: Lysimachos (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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

Autor: Sven H. (dsb_sven)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Wird aber leider nicht mehr weiter entwickelt und ist auf Stand 2008 
stehen geblieben...

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




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 erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net