Hallo werte Gemeinde,
nachdem ich nun eure Vorschläge (inbes. den letzten Beitrag) versucht habe umzusetzen, komme ich zu folgendem Code -- dessen Richtigkeit mir aber nicht ganz geheuer ist, zumal das Auto sich auch sehr merkwürdig benimmt (erinnert eher an eine Karusellfahrt). Vielleicht habt ihr eine Idee, was da physikalisch nicht ganz korrekt ist:
Delphi-Quellcode:
procedure TForm1.StartBtnClick(Sender: TObject);
var ...
Begin
XOffset := Auto.width div 2;
YOffset := Auto.height div 2;
X := Auto.left + XOffset;
Y := Auto.top + YOffset;
Theta := 0;
DegToRad := Pi/180;
StartTime:= Now;
Tag := 0;
While tag = 0 do
Begin
Sleep(100);
Application.ProcessMessages;
Vx := edit1.value;
Vy := edit2.value;
Omega := edit3.value;
Radius := edit4.value;
Currtime := Now;
dt := (Currtime - Starttime)* secsperday;
Starttime := Currtime;
dx := vx * dt;
dy := vy * dt;
x := x + dx;
y := y + dy;
dTheta := DegToRad * omega * dt;
Theta := Theta + dTheta;
x := x + Radius * cos(Theta);
y := y + Radius * sin(Theta);
Auto.left := round(x) - xoffset;
Auto.top := round(y) - yoffset;
End;
End;
Meine Frage ist nun, läßt sich die Bewegung eines Fahrzeugs mit allein den vier Angaben:
Linear:
1 Vx := edit1.value;
2 Vy := edit2.value;
Angular:
3 Omega := edit3.value;
4 Radius := edit4.value;
korrekt simulieren?
Danke euch!
Gruss
Jasmin