AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Algorithmus zum darstellen von Daten beschleunigen

Ein Thema von hedie · begonnen am 26. Jan 2011 · letzter Beitrag vom 26. Jan 2011
 
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
 


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 06:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz