Ruch jednostajnie przyspieszony - symulacja

0

Witam,
piszę program symulujący ruch jednostajnie przyspieszony. Mam narysowaną oś drogi, po której przemieszcza się samochód(bitmapa).Przemieszczanie odbywa się w timerze o ustawionej wartości interval na 100 ms:

 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 //Zwiekszaj ilosc uzyc z kazdym wywolaniem metody
  //ANIMACJA
  t:=t+0.1;
  S:=a*(t*t) / 2;
  S:=S * 1.75; //1.75px = 1 m w rzeczywistosci
  Image4.Left := Image4.Left + trunc(S); //przenies bitmapy
  Image5.Left := Image5.Left + trunc(S);
  if S < 0 then
  begin
    Image4.Visible := true;
    Image5.Visible := false;
    if Image4.Left < Image1.Left then
    begin
      Timer1.Enabled := false;
    end;
  end;
  if S > 0 then
  begin
  Image4.Visible := false;
  Image5.Visible := true;
    if Image5.Left > Image1.Width-20 then
    begin
      Timer1.Enabled := false;
    end;
  end;
end;
</code=delphi>
Na Image4 jest bitmapa samochodem jadącym do tyłu,a na Image5 jest bitmapa z samochodem skierowanym w przód. Na komponencie image1 znajduje się oś czasu, na której 1m w rzeczywistości odpowiada 1,75 px. Jeżeli zmienną a ustawię na wartość 5, to wtedy przejazd takiego samochodu powinien był zająć 8s, a zajmuje niecałe 2s. Nie wiem co tutaj jest źle, dlatego byłbym wdzięczny za pomoc.

Pozdrawiam.

EDIT1://
Image1 - tutaj narysowana jest oś, po której przemieszczają się Image4 i Image5
0

Kod niesformatowany i nie wstawiony w znaczniki, nazwy komponentów zagadkowe zamiast opisowe w miare możliwości. Także nie wiem co chcesz osiągnąć, bo najpierw tworzysz ułamkowe wartości, później je Truncem zaokrąglasz. Ech, leniuchy niesamodzielne. Masz, przeanalizuj sobie kod z załącznika - ten projekt miał kiedyś jeden gościu dostać z forum, ale sam sobie ładnie i lepiej poradził robiąć symulator ruchu ulicznego w jedną stronę i fali światel. Jednak może to się Tobie do czegoś przyda. A jak ktoś inny będzie miał cierpliwość do analizy niesformatowanego i enigmatycznego wycinka kodu to coś więcej Tobie doradzi. I TomRiddle: nie pobieraj bo jest exe, a to dla Ciebie problem :P

0

Ok, dzięki za pomoc, tylko tam mam do czynienia z ruchem jednostajnie przyspieszonym, a nie jednostajnym i chodzi mi o to, że bitmapa za szybko tam przyspiesza ;/ Odnośnie trunca, to co mam zrobić, jeżeli te wartości mają być współrzędnymi? Można jakoś zrobić współrzędne ułamkowe?

EDIT://Problem rozwiązałem sam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1