Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

18.02.2016, 10:50

[2D] Anhänger Lenkwinkel

Hallo zusammen.

Ich versuche gerade eine akzeptable Physik für meinen Anhänger zu schreiben.
Naja, "Physik" darf man das nicht nennen. Leider steht mir keine Physik-Bibliothek zu Verfügung.
Die Besonderheit am Game ist: Nicht das Fahrzeug bewegt sich, sondern die Umgebung. Ich habe mich dafür entschieden, um eine endlose Welt zu erstellt.
Im Prinzip fährt das Fahrzeug in eine endlos wiederholende Umgebung voller Bäume, etc.
Die "Physik" des Fahrzeuges funktioniert auch ganz gut. Doch was den Anhänger betrifft, bin ich etwas ratlos.
Auch wenn das Fahrzeug 4 Räder hat (Anhänger 2 Räder parallel), handelt es sich um eine Fahrrad Physik. Und das ist für mich völlig ausreichend.

Ich habe mal versucht den Anhänger Winkel mittels Low-Pass anzugleichen. Es sieht nicht schlecht aus. Doch das ist einfach nicht die richtige Lösung. Wenn man genau hinsieht, wird der Anhänger oft geschoben, statt gezogen.

trailerAngle += (angle_diff(tractorAngle, trailerAngle ) * tractorSpeed) / 400;

Man beachte: Das Fahrzeug bewegt sich nicht wirklich. Sondern die Umgebung. Dennoch hat das Fahrzeug folgende Variablen: Angle und Speed.

(Siehe Bild im Anhang)

Wäre echt nett, wenn mir jemand dabei helfen könnte. :)

Update: Möglicherweise könnte mir die Tractrix Curve weiterhelfen. Doch ich hab kein Plan wie. (Umsetzung)
»Domsen« hat folgende Bilder angehängt:
  • trailer angle steering.png
  • trailer angle steering bike.png

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Domsen« (18.02.2016, 12:14)


CeDoMain

Alter Hase

Beiträge: 587

Wohnort: Ilmenau

Beruf: Student für Mechatronik

  • Private Nachricht senden

2

18.02.2016, 20:02

Hallo,

das ist kein schweres Problem, das zu berechnen. Wenn du dich mit Vektoren ein bisschen auskennst, dann hast du es in 5 min verstanden. Ich erkläre mal:

Wir nennen die Anhängerkupplung den Punkt §A§, der Punkt zwischen den Rändern des Anhängers §B§. Die Strecke zwischen diesen beiden Punkten nennen wir §c§ - das ist quasi die Länge des Anhängers. Das Ganze wird Frameweise berechnet: Die Zugmaschine bewegt die Anhängerkupplung in irgendeine Richtung. Nun wird der Verbindungsvektor §\vec{c}§ von §A§ und §B§ berechnet: §\vec{c} = A - B§. Dann wird §\vec{c}§ normalisiert (d.h. auf die Länge 1 gebracht) und mit §c§ malgenommen. Das neue §B§ berechnet sich mit §A + \vec{c} = B§.

Die Iterationsvorschrift sieht also folgendermaßen aus: §B' = ||B - A|| * c + A§

Möchtest du nun den Winkel §\alpha§ zwischen §A§, §B§ und dem Vorderradmittelpunkt §D§ der Zugmaschine wissen, kannst du das Skalarprodukt verwenden: §\alpha = arccos(||A - B|| \cdot ||D - B||)§
Mit freundlichem Gruß
CeDo
Discord: #6996 | Skype: cedomain

Lass solche persönlichen Angriffe lieber bleiben, meine sind härter.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »CeDoMain« (18.02.2016, 20:10) aus folgendem Grund: Latex verwendet...