Open Source im professionellen Einsatz
Linux-Magazin 10/2007

Spielerische Fallschirmflug-Simulation mit Perl

Runter kommen sie alle

Spiele-Programmierer rechnen mit physikalischen Formeln und setzen spezielle Tricks ein, um Grafiken realitätsnah zu animieren. Der als Perl-Wrapper verfügbare Simple Direct Media Layer (SDL) bietet ein leistungsfähiges Framework, um einfache 2D-Welten zu schaffen, hier eine Fallschirmsprung-Simulation.

590

Als ich neulich das Video meines Tandem-Fallschirmsprungs von einer ollen VHS-Kassette auf Youtube überspielte und den Link [2] einigen Kollegen schickte, entbrannte eine heftige Diskussion über die physikalischen Gesetze, die während des Sprungs wirken. In einem vereinfachten Modell ohne Seitenwindeinfluss startet der Springer mit einer vertikalen Geschwindigkeit vy=0 und beschleunigt sofort aufgrund der Gravitation. Der nach unten wirkenden Erdanziehungskraft stemmt sich der Luftwiderstand entgegen, der mit steigender Fallgeschwindigkeit stetig wächst.

Abhängig vom Gewicht und von den Ausmaßen des Springers stellt sich dann bei etwa 180 km/h Kräftegleichgewicht ein, bei dem die Fallgeschwindigkeit konstant bleibt. Der Springer empfindet das, als würde er im Weltall schweben. Dieser Zustand hält bis zum Öffnen des Fallschirms an, was sich dann so anfühlt, als risse ihn jemand an einem Seil mit Wucht nach oben.

Abbildung 1: Der Perlmeister (unten, mit der verrutschten Maske) springt vom Himmel. Das zugehörige Video ist bei Youtube [2] in ganzer Länge zu betrachten.

Freier Plumps

Das Skript »skydive« (Listing 1) simuliert das Experiment. Es stellt den frei fallenden Springer als Icon dar, das erst langsam, dann immer schneller nach unten fällt, bis die konstante Endgeschwindigkeit von 50 m/s (180 km/h) erreicht ist. Der User löst den Fallschirm mit einem Tastendruck auf die Taste [Cursor hoch] aus, worauf das Icon sich in einen Springer mit offenem Fallschirm verwandelt, der zunächst stark abbremst und dann langsam der Erde entgegensegelt.

Das Skript zählt die Sekunden vom Absprung bis zur sicheren Landung. Das Ziel ist es, die Reißleine möglichst spät zu ziehen, aber darauf zu achten, dass die Landegeschwindigkeit bei offenem Fallschirm nicht mehr als 3 m/s (etwa 11 km/h) beträgt, damit der Springer sich nicht verletzt. Das Display zeigt links die verstrichene Zeit in Sekunden und rechts die aktuelle Fallgeschwindigkeit in Metern pro Sekunde an (Abbildung 1).

Neue Bestzeiten blendet es unterhalb des aktuellen Zählerfelds ein, wo sie bleiben, bis ein neuer Versuch sie unterschreitet. Landet der Spieler aber zu schnell, verwandelt sich das Fallschirm-Icon am Boden wieder in einen Springer ohne Fallschirm, um einen missglückten Versuch anzuzeigen (Abbildung 6). Die Bestzeit bleibt in diesen Fällen unberührt.

Fallphysik

Die Geschwindigkeit eines aus dem Ruhezustand konstant beschleunigten Körpers beträgt vy=a*t. Im Fall einer aus dem Flugzeug springenden Person ist die Beschleunigung a gleich der Erdbeschleunigung (9,82 m/s2), die Zeit t tickt in Sekunden und startet beim Absprung. Die der Gravitation entgegenwirkende Luftreibung ist als negative Beschleunigung zu deuten, die für vy=0 gleich null und für vy=vterm gleich der Erdbeschleunigung 9,81m/s2 ist.

Der Luftwiderstand berechnet sich unter anderem aus der Masse, der Geschwindigkeit sowie dem Reibungskoeffizienten des Springers in der Luft. Nach [5] beschleunigt ein 80 Kilogramm schwerer Erwachsener nach dem Absprung binnen 14 Sekunden auf etwa 190 km/h, wobei er 548 Meter zurücklegt. Anschließend fällt er konstant mit 3000 Metern pro Minute, bis der Fallschirm sich öffnet.

Die Endgeschwindigkeit hängt allerdings auch noch von der Fluglage ab. Mit dem Kopf voran ist der Luftwiderstand geringer als Bauch voran und es lassen sich leicht über 200 km/h erreichen. Details zur Berechnung des Luftwiderstands finden sich unter [6].

Der Körper bewegt sich schließlich mit konstanter Geschwindigkeit fort. Grund dafür ist die Trägheit, derzufolge er in Bewegung bleibt, solange keine äußere Kraft entgegensteht. Die äußeren Kräfte aber - hier die Luftreibung und die Gravitation - heben sich auf. In dieser Situation legt er mit der Geschwindigkeit v in der Zeit t die Strecke s=vterm*t zurück.

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • PHP: Entfernter Angreifer kann Befehle ausführen
  • Zufall unter Beobachtung

    In manchen Firmen laufen die Mitarbeiter mit Secur-ID-Tokens der Firma RSA Security herum. Das kleine Authentisierungsgerät berechnet und zeigt jede Minute eine Ziffernkombination, die beim Einloggen temporär gültig ist. Eine mit Perl gestrickte Zeichenerkennung schaut dem Schlüsselgenerator beim Zocken zu.

  • Insecurity Bulletin

    Der Web-Tausendsassa PHP kann auch Bilddateien bearbeiten, etwa auf gewünschte Dimensionen zurechtstutzen. Die zu diesem Zweck verwendete Grafikbibliothek GD lässt sich allerdings durch bösartig gewählte Größenangaben zum Absturz bringen.

  • Perl-Snapshot

    Zum Stöbern in vorbeirauschenden Paketen im lokalen Netzwerk leistet Platzhirsch Wireshark gute Dienste. Wer lieber eigene Tools baut, greift auf die Kommandozeilenversion Tshark zurück.

  • Programmieren mit Py Side, Ressourcendateien, Qt Quick und QML

    Dieser Beitrag ergänzt den Artikel "Starkes Gespann - Py Side: Programmieren mit Python und Qt" aus dem Linux-Magazin 11/11. Hier erfahren Entwickler, wie sie Ressourcendateien sowie Qt Quick und QML für GUI-Anwendungen einsetzen.

comments powered by Disqus

Ausgabe 04/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.