ich habe mal ne Frage in bezug auf "Wie bewege ich ein Objekt durch Richtung und Geschwindigkeit richtig?".
Bisher habe ich es so gemacht, das ich Einfallswinkel = Ausfallswinkel hatte, aber das muss sich ändern, nun möchte ich mit
Geschwindigkeit und Richtung arbeiten.
Was ich mir dachte, ist durch die alte Position, die geschwindkeit(strecke) und dem Winkel (richtung, oder wie soll ich die angeben?!)
Die neue Position herauszufinden, sollte mit Sin,Cos und Tan gehen oder?
Aber, gibt es eine "elegantere Methode", denn ich möchte jetzt mal versuchen es zu "perfektionieren", sonst mache ich immer so dahingefuschte sachen
Habt ihr meine Frage so verstanden?
PS: Ich wusste nicht nach was ich in der Suche suchen soll, deshalb, entschuldigt wenn es dieses Thema schon gab.
Habe das ja noch net gemacht, ich wollte wissen, OB es eine bessere Lösung GIBT.
Und dann, genau was du sagtest "Bogenmaß", kannst du mir erklären, was da der Unterschied ist? bzw. wie ich das von Winkel in Bogenmaß umrechne?
Bogenmaß unterteilt einen Kreis nicht in 360°-Schritte, sondern ein Kreis geht da von 0 bis 2pi.
360° = 2pi
180° = pi
90° = pi/2
usw.
Vom Gradmaß ins Bogenmaß:
b=(g/180)*pi
Vom Bogenmaß ins Gradmaß:
g=(b/pi)*180
Wenn du das nicht per Hand machen willst, bietet dir Delphi dafür auch die Funktionen DegToRad und RadToDeg. Evtl. unit Math einbinden, da bin ich mir gerade nicht sicher.
FUNCTION OldToNewPos(bPos: TVertex; richtung, geschwindigkeit:single):TVertex;
VAR
a,b:single;
res: TVertex;
BEGIN
a :=0; b :=0;
a := geschwindigkeit*sin((richtung/180)*pi);
a := bPos[0]+ a;
if a < 0then a :=-a;
b := geschwindigkeit*cos((richtung/180)*pi);
b := bPos[2]+ b;
if b < 0then b :=-b;
res[0]:=a;res[1]:=0;res[2]:=b;
Result := res;
END;
Klappt soweit ganz gut Also Danke schonmal soweit... allerdings, wenn richtung=180 ist, dann bleibt das Objekt auf dem selben Punkt.
Darf ich das nicht einfac so: a := bPos[0] + a; machen und muss erst abfragen, welches das kleinere ist und dann Passend Addieren/Subtrahieren ?
FUNCTION OldToNewPos(bPos: TVertex; richtung, geschwindigkeit:single):TVertex;
VAR
a,b:single;
res: TVertex;
BEGIN
a :=0; b :=0;
a := geschwindigkeit*sin((richtung/180)*pi);
a := bPos[0]+ a;
b := geschwindigkeit*cos((richtung/180)*pi);
b := bPos[2]+ b;
res[0]:=a;res[1]:=0;res[2]:=b;
Result := res;
END;
Für jeden der sowas braucht...
momentane position & richtung & geschwindigkeit = neue position, das macht diese Funktion.
Könnte bestimmt mal brauchbar sein für jeden
Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.