Simulation eines völlig reibungsfreien Billardtisches

Dieses Programm stellt einen kleinen Leckerbissen für jeden Liebhaber der mechanischen Physik dar, denn es handelt sich hierbei um eine hübsche Anwendung des Impulssatzes.

Bildschirmschnappschuss vom virtuellen Billard
Ein virtueller Billard-Anstoss

Bildschirmschnappschuss der komplexen Szene
Ein komplexe Szene mit Kugeln aus unterschiedlichen Materialien

Bildschirmschnappschuss vom der vereinfachten Darstellung
Die grosse, grüne Kugel wird aufgrund ihres extrem leichten Materials von der kleinen, grauen Kugel mit sehr grosser Masse herumgestossen: Auch solche physikalische Extremszenen lassen sich simulieren.

Versionsübersicht

Bei QuickBASIC und MaxonBASIC können Sie zwischen Strichgrafik wie im untersten Bild und gefüllter Präzisionsdarstellung wählen, wofür jedoch etwas mehr Rechenleistung von Ihrem PC erforderlich ist.

Bei AmigaBASIC existiert aufgrund der langsamen Geschwindigkeit nur die Version mit Strichgrafik, umgekehrt ist bei der C++-Version nur die gefüllte Darstellung möglich.

Die MaxonBASIC-Version arbeitet ferner mit CLI-Parameter anstelle von interaktiven Eingaben. Sie müssen es dort beispielsweise als

1.WORK:MaxonBASIC/Programme> Billard-Simulation -1x situa1.bil

starten. Mit der Option -i aktivieren Sie hochauflösende Interlace-Darstellung anstelle vom LoRes-Grafikmodus, mit -1 reduzieren Sie die Darstellung auf Schwarzweiss, was besonders auf einem alten Amiga 500 aufgrund der geringeren DMA-Zugriffen merklich Geschwindigkeit bringt. Mit -s schalten Sie den Ton ab, dabei wird ein Ton=Ein in der Datei bewusst ignoriert. -wb veranlasst, die Workbenchauflösung zu verwenden, was beim AGA-Chipsatz den Vorteil bringt, flimmerfreie Auflösungen zu nutzen. Unter OS 1.x muss dagegen immer -1x verwendet werden, um bei MaxonBASIC den Gebrauch der diversen OS 2.x/3.x-Erweiterungen zu unterdrücken. Die Schalter lassen sich auch kombinieren.

Datenschnittstelle

Diese Simulation erlaubt Ihnen nach Belieben eigene Szenen zu erstellen, die beiliegenden .BIL-Dateien sind dabei die Beispiele wie in den Bildschirmschnappschüssen dargestellt. Im folgenden wird dieses Dateiformat kurz beschrieben.

Aufbau Dateiformat

Die Dateien sind im ASCII-Textformat und besitzen einen zeilenorientierten Aufbau, wobei jede Zeile der Syntaxregel <Parameter>=<Wert> folgt. Zeilen mit % sind nur REM-Kommentare. Die Parameternamen sind immer 3 Zeichen lang, die Gross-/Kleinschreibung spielt dabei keine Rolle.

Mögliche Parameter
ParameternameBeschreibungerwarteter Wert Vorgabewert
BEcweiterer Eckpunkt des BandenpolygonsZahlX ZahlY-
KugWeitere Kugel: IndexnummerGanzzahl 1
PosAnfangsposition der KugelZahlX ZahlY0 0
VelAnfangsgeschwindigkeit kartesischZahlY ZahlY0 0
MasMasse (Gewicht) der KugelZahl100
RadGrösse der Kugel: RadiusZahl 10
DicDichte: spezifisches MaterialgewichtZahl -
FarFarbe: Farbnummer im aktuellen Videomodus Ganzzahl10
TonFlag, ob Sound ein oder ausein, ausein
TolZeichengenauigkeit (nur Strichgrafik-Version): Maximal zulässige Abweichung von der ideal genauen Kreislinie in PixelZahl0.4
VFaVerkleinerungsfaktor für Bildschirmfaktor als Verhältnis Bildschirmabmessung÷grösste AusdehnungZahl1.01
LFaVerlangsamungsfaktor für langsame PCs: 1=Originalgeschwindigkeit, <1=schneller, >1=langsamer Zahl 1
Besoptionale Beschleunigung (schräger Tisch) kartesischZahlX ZahlY0 0
NeiTischneigung: G=Erdbeschleunigung, N=Neigungswinkel in °, R=Richtungswinkel in °ZahlG ZahlN ZahlR-

Einige Anmerkungen dazu:

Implementationsunterschiede

Bei diesem Programm können Sie die Unterschiede der einzelnen Programmiersprachen besonders schön beobachten: Während bei C++ objektorientiert mit Klassen gearbeitet wird, ebenso die QBASIC.EXE mit einem objektbasierten Design auftrumpft, mussten bei den beiden Amigaversionen aufgrund der fehlenden Strukturtypen die Objekte in Einzelvariablen »zerschlagen« werden, was neben einem weniger schönen Programm-Design auch eine erheblich geringere Ausführgeschwindigkeit bei den SUB-Unterprogrammaufrufen zur Folge hat. Aus diesem Grund enthält die Portierung für MaxonBASIC noch zuätzlich zwei optimierte Versionen, bei welchen lediglich die Kugelzeichenprozedur durch eine Inline-Codierung ersetzt wurde. Ansonsten kommen überall die im Artikel über flimmerfreie Animationen beschriebenen Techniken voll zum Einsatz.


Microsoft QuickBASIC®-Logo aus Windows® Version für QuickBASIC herunterladen

Umfang: 24 KB


Workbench-Icon von AmigaBASIC Version für AmigaBASIC herunterladen

Umfang: 18 KB


Workbench-Icon von MaxonBASIC Version für MaxonBASIC herunterladen

Umfang: 69 KB


Titel »djgpp« vom GNU-C++-Compiler für DOS Version für DJGPP herunterladen

Umfang: 61 KB + Laufzeitumgebung 59 KB


Zurück ins Downloadmenü


© 2000 by Andreas Meile