Einzelnen Beitrag anzeigen

hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#1

Algorithmus zum darstellen von Daten beschleunigen

  Alt 26. Jan 2011, 12:08
Hallo zusammen...

Ich habe vor einiger Zeit begonnen ein GUI für einen LogikAnalysator zu programmieren...
Damals hat mir jemand hier aus diesem Forum sehr bei der umsetzung des Algorithmus zur Darstellung der Daten geholfen...

Nun ist einige Zeit vergangen, und ich möchte das GUI gerne überarbeiten... Der Algorithmus zur Darstellung habe ich jetzt einfach mal 1:1 übernommen.

Doch leider habe ich festgestellt, das dieser zu wenig performant ist. Ich wollte euch deshalb fragen, ob ihr ideen zur beschleunigung dieses Algorithmus habt...

Fakten:

Das Signal wird auf ein TImage gezeichnet (mit PEN)
Es werden 8 Images (Kanäle) angezeigt
Die Daten für die Images liegen in einem Array
es muss entweder eine linie nach oben oder eine nach rechts gezeichnet werden.


Derzeitiger Zeichen algorithmus

Delphi-Quellcode:
procedure TForm1.draw_raw_data(drawspace:TImage;color:TColor; typ: integer);
const y: array[0..1] of integer = (25,6);
var
i:integer;
begin
  i := 1;
  draw_line(drawspace,color, 0, Kanal_Daten[typ][i].index,25);
  draw_up(drawspace, color, Kanal_Daten[typ][i].index);
  for i := 1 to (Kanal_Counter[typ])-1 do
    begin
    draw_up(drawspace, color, Kanal_Daten[typ][i+1].index);
    draw_line(drawspace, color, Kanal_Daten[typ][i].index,Kanal_Daten[typ][i+1].index, y[Kanal_Daten[typ][i].data]);
    end;
end;
Drawspace ist das TImage auf welches gezeichnet werden soll
Color ist die Farbe der Linie
und Typ ist ein Integer von 0..7. Mit diesem wird angegeben welche Kanaldaten verwendet werden müssen
Draw_line zeichner eine linie von x-x
Draw_up zeichnet eine Linie nach oben

Kanal_Daten[typ][i] ist ein Zweidimensionales Array... Wobei Typ für den Kanal steht und i ein wert von 0..65535 ist.

Dieser Algorithmus ist derzeit sehr träge...

Anbei habe ich das Programm mit einer Beispiel Datein (Einfach unter Allgemein -> Signal öffnen die Datei öffnen)

Danke schonmal
Grüsse
Angehängte Dateien
Dateityp: zip LogicAnalyzerGUI.zip (401,8 KB, 13x aufgerufen)
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch

Geändert von hedie (26. Jan 2011 um 12:38 Uhr)
  Mit Zitat antworten Zitat