![]() |
AW: Array Probleme
Zitat:
|
AW: Array Probleme
Zitat:
Wenn Du Werte von Außen bekommst, brauchst Du ja die Zeiteinheit... Beispiel: Du hast eine Abtastrate von 40 KHz... Also bekommst Du 40000 werte pro Sekunde... Diese Werte musst Du ja umrechnen auf Bildschirmbreite, damit Du eine stehende Welle hast... (Oder was auch immer da rein kommt)... Wenn Deine Abtastrate aber variable ist, musst Du wissen wann oder wie schnell die Werte reingekommen sind... Sonst kommt ja hinten nur Müll raus.. Wenn Du also 40000 Werte pro Sekunde hast, musst Du sicherlich erst mal eine sinnvolle Datenreduktion/Interpolation machen... Oder? Mavarik |
AW: Array Probleme
mhhhhhhhhhh :roll:
|
AW: Array Probleme
Zitat:
|
AW: Array Probleme
Zitat:
|
AW: Array Probleme
Ich glaube bin mir sicher du würdest mehr Hilfe erhalten wenn du dein Problem klar und prägnant beschreiben kannst. Du erzählst irgendetwas von Malen und "externen Werten", im Titel geht es um "Array Probleme" und das einzig konkrete sind zwei Seiten Code die man noch nicht einmal bei sich ausführen kann.
Kannst du einmal in maximal drei Sätzen beschreiben welches konkrete Problem du lösen möchtest? Vielleicht bin ich auch einfach nicht sonderlich schlau, Mavarik scheint ja verstanden zu haben worum es geht... |
AW: Array Probleme
okay, ich versuche das mal...
Ich möchte erst einmal einen Array haben, der mit beliebig vielen "Daten" gefüllt werden kann. Da ich ja nicht weiß, wieviele "Signale" kommen... Diese Daten sollen dann visuell in meiner Komponente dargestellt werden. (Funktionsprinzip Oszilloskop) Dabei ist meine X-Achse die Zeit und meine Y-Achse die Intensität(Amplitude). in erster Linie habe ich keine Ahnung, wie man soetwas macht, würde es aber gern lernen... Google und die Hilfe bringen mich nicht weiter.... |
AW: Array Probleme
.. wie bekommst Du denn die Daten?
a) seriell, allso eine Zeiteinheit nach der anderen - dann kannst Du den Array (Queue, Schieberegister) von hinten füllen - ein 1. Zeiteinheit - dann zweite Zeiteinheit dahinter - usw. Dann kannst Du das Bild "langsam" aufbauen Es verschiebt sich dann von rechts kommend nach links. Oder du wartest bis Dein Array vollständig gefüllt ist und zeichnest es dann. Gefüllt ist es dann, wenn alle Daten 40000 bei 40Khz Abtastrate in Deinem Array angekommen sind. b) einen Buffer mit allen Daten aus mehreren Zeiteiheiten - mit dem Buffer befüllst Du dann Dein Array - zeichnest das Array. Grüße Klaus |
AW: Array Probleme
Ich ignoriere Klaus, der relativ komplexe Sachen wie "wartest bist dein Array gefüllt ist" mit einem Halbsatz abfrühstückt, einfach mal und sage nur was über Array Grundlagen:
Zitat:
Delphi-Quellcode:
In das Array passen genau 12 Integer rein. Mavarik ist glaub ich ein Fan von den Dingern, ich habe die in meinem Leben noch nie benutzt.
var
meinZwölferArray: array[0..11] of Integer; Die zweite Möglichkeit sind dynamische Arrays: Die sind gut für dich, denn die können so groß werden bis dein Speicher voll ist. Da lässt man die expliziten Größenangaben einfach weg:
Delphi-Quellcode:
Nach der Deklaration hat das dynamische Array erst einmal die Größe Null. Es passen keine Elemente hinein. Wenn nun 500 Integer hineinpassen sollen musst du sagen
var
meinIntegerArray: array of Integer;
Delphi-Quellcode:
Sagen wir die Integer-Werte stellen einen Absolutwert da (Y-Achse). Der Index (die wievielte Stelle im Array) ist der Wert auf der X-Achse. Um jetzt alle Werte zu nehmen und auszugeben, gehst du so drüber:
SetLength(meinIntegerArray, 500);
Delphi-Quellcode:
var
meinIntegerArray: array of Integer; arrayIndex: Integer; begin SetLength(meinIntegerArray, 10); for arrayIndex := Low(meinIntegerArray) to High(meinIntegerArray) do ShowMessage( IntToStr(meinIntegerArray[arrayIndex]) ); Erstmal: Alles klar soweit in Sachen Arrays? |
AW: Array Probleme
Etwas ausführlicher (Englisch):
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:58 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