Einzelnen Beitrag anzeigen

Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Bräuchte Hilfe beim Zeichnen von u=u_t*cos(2*pi*f_t*t)

  Alt 20. Nov 2006, 14:30
Wo liegt denn dein Problem? Die Funktion sieht schon mal ganz gut aus. Warum überzeichnest du aber das gesamtze Feld, nachdem du einen Punkt gesetzt hast? So wirst du nichts sehen können.
ich schlage so etas vor:

Delphi-Quellcode:
while x<100 do
  begin
    x:=x+0.01;
    y:=u_t*cos(2*pi*f_t*x); //Formel
    image1.canvas.Rectangle(0,0,image1.Width,image1.Height); // a
    image1.canvas.pixels[round(x+50),round(-y+100)]:=clblack;
    sleep(50); // damit siehst du wie die Funktion gezeichnet werden soll.
    

  end;
a sollte nur drin sein, wenn du sleep (oder delay...) in der Funktion hast, dann siehst du die einzelnen Punkte.

Auch solltest du nicht die Größe des Fenster hart einbauen. eher oben in eine Variable die Fenstergröße einlesen und dann unten in deinen zeichenbefehl einbauen. Alles andere ist recht hässlich und führt zu viel Arbeit, wenn du mal die Fenstergrößer andern willst.
Am Besten baust du dir gleich eine Funktion wie:

Delphi-Quellcode:
Procedure Funktionzeichnen(image: Tcanvas; sleeptime: integer; col: tcolor usw. );
begin
y=...
zeichnen;
sleep(sleeptime);
end;
Die kannst du dann immer benutzen, wenn du ein ähnliches Problem hast. Dann musst du nur etwas die Parameter an deine speziellee Funktion anpassen und die y=-Zeile anpassen. Das halte ich am programmiertechnisch schönsten.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat