Einzelnen Beitrag anzeigen

KosMottchen

Registriert seit: 4. Mär 2006
34 Beiträge
 
Delphi 7 Enterprise
 
#1

Problem mit einem Diagramm

  Alt 25. Mai 2006, 11:29
huhu,

hab nen programm für de schule geschrieben, wo ich am ende nen s-t-diagramm haben will...

ich hab alles hinbekommen, bis auf das mit der kurve... das sieht mir sehr unlogisch aus...

kann mir da mal jmd helfen und gucken, ob das so richtig ist?

die achsen stimmen ja... nur eben die kurve, die er ja anhand von best werten eintragen muss, die sieht nicht richtig aus

danke schonmal.

mfg kos

Delphi-Quellcode:
{$R *.dfm}

Procedure stDiagramm (s,t:integer);
begin
  t:=t+30;
  s:=370-s;
  Form1.Image1.Canvas.LineTo(s,t);

end;



Function Geschwindigkeit (a,v0,t:real):real; // Funktion Geschwindigkeit-Berechnen
begin
  result:=a*t+v0; //ergebnis zuweisen
end;

Function Weg (a,t,v0:real):real; // Funktion Weg-Berechnen
begin
  result:=(a/2)*sqr(t)+(v0*t); //ergebnis zuweisen
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
with stringgrid1 do begin
  cells[0,0]:=' Zeit';
  cells[1,0]:=' Geschwindigkeit';
  cells[2,0]:=' Weg';
end;

with Image1.Canvas // canvas=leinwand
do begin // Koordinaten-Achsen zeichnen

MoveTo (30,370); // an den Punkt P1(30,370) gehen
LineTo (635,370); // von P1 eine linie nach P2 (635,370) ziehen
MoveTo (635,370); // an den Punkt P2 gehen
LineTo (625,365); // einen Strich nach P3 (625,365) ziehen
MoveTo (635,370); // an den Punkt P2 gehen
LineTo (625,375);// einen Strich nach P4 (625,375) ziehen
MoveTo (30,370); // an den Punkt P1(30,370) gehen
LineTo (30,30); // einen Strich an P5 (30,30) ziehen
MoveTo (30,30); // an den Punkt P5 gehen
LineTo (35,40); // einen Strich an den Punkt P6 (35,40) ziehen
MoveTo (30,30); // an den Punkt P5 gehen
LineTo (25,40); // einen Strich an den Punkt P7 (25,40) ziehen

end;
end;

procedure TForm1.Button1Click(Sender: TObject);
Var a,v,v0,t,za,ez,s:real;
    i,o:integer;
begin
Val (Form1.Edit1.Text,a,o); // Beschleunigung
Val (Form1.Edit2.Text,v0,o); // Anfangsgeschwindigkeit
Val (Form1.Edit3.Text,za,o); // Zeitabstände
Val (Form1.Edit4.Text,ez,o); // Endzeit

with Form1.StringGrid1 do begin
rowcount:=round(ez/za+2);
t:=0; // Startwert: zeit=0

Image1.Canvas.MoveTo (30,370); // auf den Ursprung setzen

for i:=1 to rowcount do begin
cells[0,i]:=floattostr(t); // Zeit in SG
v:=Geschwindigkeit (a,v0,t); // Funktion Geschwindigkeit aufrufen
cells[1,i]:=floattostr(v); // Geschw in SG
s:=Weg (a,t,v0); // Funktion Weg aufrufen
cells[2,i]:=floattostr(s); // Weg in SG
t:=t+za; // Zeit um Zeitabstand erhöhen
stDiagramm (round(s),round(t)) // Aufruf Prozedur stDiagramm


end;
end;
end;


end.
Angehängte Dateien
Dateityp: rar beschleunigung_-_funktionen_prozeduren_und_grafik_140.rar (207,1 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat