AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Zeichnen eines Plots beschleunigen (TImage)
Thema durchsuchen
Ansicht
Themen-Optionen

Zeichnen eines Plots beschleunigen (TImage)

Ein Thema von rawsoul · begonnen am 8. Dez 2007 · letzter Beitrag vom 8. Dez 2007
 
Benutzerbild von rawsoul
rawsoul

Registriert seit: 29. Okt 2006
Ort: Düsseldorf
249 Beiträge
 
Delphi 2005 Personal
 
#1

Zeichnen eines Plots beschleunigen (TImage)

  Alt 8. Dez 2007, 15:37
Hallo liebe Gemeinde,

ich möchte ein Array in einem Image plotten. Das ganze geschieht über ein TBitmap, welches nach dem Zeichnen auf das Image assigned wird (BitBlt). Dies verhindert im Vergleich zum direkten Zeichnen auf das Image das flackern und beschleunigt den Vorgang. Trotzdem ist es mir noch zu langsam.
Es wird nämlich sehr of (300 Mal, für jedes Arrayelement) gezeichnet, da ich eine flüssige Bewegung darstellen möchte.

Delphi-Quellcode:
procedure drawgraph(arr:tintarr;image:timage;bmp:tbitmap);
var
  i:integer;
  col:tcolor;
begin
  with bmp do
    begin
      Canvas.Brush.Color:=clbtnface;
      Canvas.Pen.Color:=clblack;
      Canvas.Rectangle(0,0,302,302);
      for i:=0 to 299 do
        begin
          if arr[i]=i then Col:=clgreen else Col:=clred; //Der Sinn hiervon sei mal dahingestellt...
          Canvas.Pixels[i+1,300-arr[i]]:=col;
        end;
    end;
  bitblt(image.Canvas.Handle,0,0,302,302,bmp.Canvas.Handle,0,0,srccopy);
  image.Refresh;
end;
Wie kann ich die Prozedur beschleunigen? Dabei möchte ich jedoch ungern auf TChart oder OGL zurückgreifen.

Grüße,
Frank.
Frank Dumont
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz