so tut mir leid ein problem habe ich noch
also ich hab jetzt mal alle formeln implementiert und bei mir ist dann imemr ekin = epot soll das so sein?
und jetzt mein eigentliches problem ich finde die geschwindigkeit sollte man an der animation erkennen
Delphi-Quellcode:
Formelx := round(Zeichen.Width div 2 -50+ 150*cos( (180-Move.Position)*2*Pi/360));
Formely := round(150*sin((Move.Position)*2*Pi/360));
Formelxx := round(Zeichen.Width div 2 +20 + 150*cos( (360+Move.Position)*2*Pi/360));
Formelyy := round(150*sin((360+Move.Position)*2*Pi/360));
Label1.Caption := 'Wert: ' + IntToStr(Move.Position);
e := Zeichen.Width div 2 -50;
Zeichen.Repaint;
Zeichen.Canvas.MoveTo(Zeichen.Width div 2 -100, 10);
Zeichen.Canvas.LineTo(Zeichen.Width div 2 +100, 10);
h := 150-Formelx;
v := sqrt(2*g*h);
EPot := m*g*h;
Ekin := 0.5*m*power(v,2);
Writer.Lines.Add('h : ' + FloatToStr(h));
Writer.Lines.Add('v : ' + FloatToStr(v));
Writer.Lines.Add('EPot: ' + FloatToStr(EPot));
Writer.Lines.Add('Ekin: ' + FloatToStr(Ekin));
for i := 1 to 5 do
begin
if (links = true) and (e = Zeichen.Width div 2 -50) then
begin
Zeichen.Canvas.MoveTo(e,10);
Zeichen.Canvas.LineTo(Formelx+12,Formely+12);
Zeichen.Canvas.Brush.Color := clgreen;
Zeichen.Canvas.Ellipse(Formelx,Formely,Formelx+25,Formely+25);
inc(e, 25);
end
else
if (i = 5) and (links = false) then
begin
Zeichen.Canvas.MoveTo(e,10);
Zeichen.Canvas.LineTo(Formelxx+12,Formelyy+12);
Zeichen.Canvas.Brush.Color := clgreen;
Zeichen.Canvas.Ellipse(Formelxx,Formelyy,Formelxx+25,Formelyy+25);
inc(e, 25);
end
else
begin
Zeichen.Canvas.MoveTo(e,10);
Zeichen.Canvas.LineTo(e,150);
inc(e, 25);
Zeichen.Canvas.Brush.Color := clgreen;
Zeichen.Canvas.Ellipse(e-40,150,e-15,175);
end;
end;
wie könnte ich da eine geschwindigkeit simulieren? - wenn ich beim timer interval der geschwindigkeit anpassen würde wäre das ja nicht gut sichtbar
für gute ideen bin ich sehr dankbar
grüße Nico