![]() |
Re: art eeg mit canvas
@big: das ist aber kein EEG. Da werden ja nur zufällig jede Sekunde neue Balken generiert oder täusche ich mich da?
|
Re: art eeg mit canvas
es soll ja auch eine art eeg werden....bigg's demos ist schon cool...ich würde nur gerne wollen das ich richtige werte einsetzen kann und sich das ganze dann immer von rechts um eine stelle verschiebt und ganz rechts halt der aktuelle wert steht...
jemand ne ahnung? |
Re: art eeg mit canvas
Also ein EEG sieht bei mir so aus:
Delphi-Quellcode:
Ein Button, ein Timer und eine Paintbox. Den y-Wert kannst du ja entsprechend variiren.
type
TPTArray = array of TPoint; var Form1: TForm1; PTArray: TPTArray; Index: Integer = 0; implementation {$R *.dfm} procedure DrawPixel(Canvas: TCanvas; Color: TColor; pt: TPoint); begin Canvas.Pixels[pt.X, pt.Y] := Color; end; procedure DeletePixels(Canvas: TCanvas; Color: TColor; ptArray: TPTArray); var i: Integer; begin for i := 0 to length(ptArray) - 1 do Canvas.Pixels[ptArray[i].X, ptArray[i].Y] := Color; end; procedure TForm1.Button1Click(Sender: TObject); begin Timer1.Enabled := True; end; procedure TForm1.FormCreate(Sender: TObject); begin Setlength(PTArray, Paintbox1.Width); end; procedure TForm1.Timer1Timer(Sender: TObject); var pt: TPoint; begin pt.X := Index; pt.Y := Paintbox1.height div 2; ptArray[Index] := pt; DrawPixel(Paintbox1.Canvas, clGreen, pt); Inc(Index); if Index = length(ptArray) then begin DeletePixels(Paintbox1.Canvas, clbtnFace, ptArray); Index := 0; end; end; |
Re: art eeg mit canvas
das ist auch ein schöner effekt, ich suche aber dennoch so wie oben das demo von bigg, nur halt das ich die werte zuweisen kann... und sich das ganze immer nur um eine stelle nach rechts verschiebt
|
Re: art eeg mit canvas
Dann mach es wie ich mit einem Array.
|
Re: art eeg mit canvas
ich kenne mich mit sowas nicht aus....kann mir nicht jemand helfen? ich weiß noch nicht mal wie ich anfangen soll! das beispiel von big ist ja schon ganz gut. ich denke es müsste doch nur noch abgeändert werden oder?
|
Re: art eeg mit canvas
luckie hat schon recht, du musst ein array anlegen und dann alle einträge nacheinander
von rechts nach links zeichnen. In meinem Beispiel generiere ich alle Einträge neu pro Zeichnung. Du brauchst doch bloss das Array mit Daten füllen. Die grösse des Arrays hängt von der Breite des Diagramms ab. @Luckie Ja, ein EEG ist es nicht, aber ein schicker langsamer Effekt schon :-D |
Re: art eeg mit canvas
kann mir da nicht jemand helfen?
|
Re: art eeg mit canvas
was mir probleme macht ist die abstufung in 60 teile u.s.w. und das mit dem nach links verscheieben!
|
Re: art eeg mit canvas
Ich würde das Array nicht verschieben, sondern stattdessen eine integer-Variable namens Anfang machen, die die aktuelle "ganz-links"-Position speichert.
Beim Zeichnen fängst du bei diesem Wert an, wenn du das Ende des Arrays erreicht hast machst du am Anfang weiter, und zwar solange bis du wieder beim Ende (also Anfang-1) bist. Wenn du einen neuen Wert einträgst, überschreibst du einfach das Ende (Anfang-1) damit. Dadurch musst du überhaupt nichts verschieben. Ist IMHO einfacher und natürlich wesentlich schneller. Tubos |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:57 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