• Ich würde gern einen 2D Graphen in .Net implementieren; Dabei stellt die X-Achse die Zeitachse dar. Jetz bekomem ich in regelmässigen Zeitabständen (10 bis 1000ms) einen neue Datenwert. Dabei sollte die X Achse "scrollable" sein. Soweit so gut - das hab ich auch implementiert. (siehe angenängtes Projekt -> Simuliert einstweilen mit einem Array; Nur zu Testzwecken; die Zeitabstände werden via Ticker geregelt)

    Jetzt häng ich aber bei einem Problem: "FLICKER" !! Sobald meine Zeitabstände klein Werden (<100ms) flackert das Bild beim Neuzeichnen. Habe es bereits mit DoubleBuffer versucht (Glaube aber das ich ihn flasch angewendet habe!)

    Hatte jemand vllt. schon mal mit dem zu tun - bzw. eine Idee wie ich das flackern "abstellen" könnte....??
    Selbst wenn ich directX verwenden würde (was ich noch nicht gemacht habe und in das ich micht auch nciht einlesen will,wenns nicht unbedingt notwendig ist!) wüde ich doublebuffer benötigen...

    Ich hab mal der einfachheit halber das Projekt(ich sags gleich...is in schlechten stiel programmiert....aber i hatte keine zeit es "schön" "anständig" zu machen *g*) angehängt - is glaub ich besser als den Code zu posten;

    thx für jegliche Hilfe im Vorraus!

    This is Linux land...in silent nights you can hear windows machines reboot!
    ---
    Der kleine Windows-Kobolt auf meiner linken Schulter befiehlt:"Du sollst alles NIEDERBRENNEN!"

  • [EDIT]

    .rar geändert

    [/EDIT]

    This is Linux land...in silent nights you can hear windows machines reboot!
    ---
    Der kleine Windows-Kobolt auf meiner linken Schulter befiehlt:"Du sollst alles NIEDERBRENNEN!"

  • Hab von C#/NET nicht so viel Ahnung, aber warum zeichnest du den ganzen Graphen neu? Ich würd da nur ein Stück dazuzeichnen, und den Rest nur bei nem Scrollevent.
    Ansonsten hab ichs unter Delphi so gemacht, in ein Bitmap im Speicher zu zeichnen, und diess dann in einem Aufwasch rauszukopieren (mit bitblt, mit GDI+ gibts sicher besseres), dann flackerts auch nicht. So kann man auch einige kleinere Spiele machen, ohne dass es flackert.

    In einen FBO rendern ist wie eine Schachtel Pralinen - man weiß nie, was man kriegt.

  • Zitat von Wolfibolfi

    Hab von C#/NET nicht so viel Ahnung, aber warum zeichnest du den ganzen Graphen neu? Ich würd da nur ein Stück dazuzeichnen, und den Rest nur bei nem Scrollevent.
    Ansonsten hab ichs unter Delphi so gemacht, in ein Bitmap im Speicher zu zeichnen, und diess dann in einem Aufwasch rauszukopieren (mit bitblt, mit GDI+ gibts sicher besseres), dann flackerts auch nicht. So kann man auch einige kleinere Spiele machen, ohne dass es flackert.


    das war auch mein erster gedanke, dass ich immer ein stück dazuzeichne....aber das haut irgendwie nicht hin....(bin für hilfen offen ;) )

    das mit dem bitmap neuzeichnen is das konzept des doublebuffers...habs jetz "angeblich" (laut dem schlauen internet) richtig umgesetzt (siehe anhang)

    aber es flackert noch immer.....hmmmm.....

    [EDIT]
    codezeile vergessen:

    Code
    _doBuffer = true;

    [/EDIT]

    This is Linux land...in silent nights you can hear windows machines reboot!
    ---
    Der kleine Windows-Kobolt auf meiner linken Schulter befiehlt:"Du sollst alles NIEDERBRENNEN!"

  • also ich hab auch so ein ähnliches problem, und würd mich auch über ein funktionierendes double-buffering in c/c++ freuen ;)
    ich versuchs grad mit Borland c++ ein eigenes TImage zu schreiben und die paint-methode zu überladen, aber gebracht hat das eigentlich noch nichts ;(

  • Zitat von wolk

    also ich hab auch so ein ähnliches problem, und würd mich auch über ein funktionierendes double-buffering in c/c++ freuen ;)
    ich versuchs grad mit Borland c++ ein eigenes TImage zu schreiben und die paint-methode zu überladen, aber gebracht hat das eigentlich noch nichts ;(


    also i habs jetz in c# geschafft...wenn ich helfen kann (c#!) dann meld dich!

    This is Linux land...in silent nights you can hear windows machines reboot!
    ---
    Der kleine Windows-Kobolt auf meiner linken Schulter befiehlt:"Du sollst alles NIEDERBRENNEN!"

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!