News

Was ist BillardGL?

Regeln

Technik
Stossablauf
Aufbau
Physik
Kugeln
Tisch
Kamera

Download
Sprachen

FAQ

Billard Links

Impressum


de en

BillardGL © 2001 - 2008 by
T. Nopper, S. Disch, M. Welte

iguana

SourceForge Logo

Die Physik

Prinzip

Die Physik berchnet im Vorraus die gesamte Simulation. Dazu wird die Anfangsgeschwindigkeit der weißen Kugel übergeben. Die Anfangspositionen der Kugel erhät die Simulation aus den einzelnen Kugelobjekten.

Die Simulation selbst wird in diskreten Zeitschritten berechnet (default: 1/100 s). In jedem Zeitschritt werden folgende Schritte abgearbeitet:

  • Die neue Position jeder Kugel berechnen
  • Kollisionsabfrage aller Kugeln untereinander
  • Kollisionsabfrage mit Banden/Schrägen
  • Kugeln eingelocht?
  • neue Positionen in Bewegungstabelle schreiben
  • Geschwindigkeiten aktualisieren
Die Simulationsdauer beträgt 20 Sekunden.

Kollision mit Kugeln

In jedem Zeitschritt werden die Abstände der Kugeln untereinander berechnet. Ist dieser kleiner dem Durchmesser, haben sich zwei Kugeln durchdrungen.

Nun werden die neuen Geschwindigkeitsvektoren berechnet.

Mit Hilfe des Skalarprodukts kann man recht einfach die Geschwindigkeitskomponenten, die in Richtung der anderen Kugel wirken berechnen. Diese zieht man voneinander ab und erhält die Resultiernde.

Die Resultierenden werden mit den Geschwindigkeitsvektoren addiert.

Man erhält einen neuen Geschwindigkeitsvektor. Dieser wird noch um einen Faktor gekürzt, um Stossverluste zu simulieren.

Kollision mit Bande/Schräge

Dies entspricht einer Reflektion und wird nach dem Prinzip Enfallswinkel = Ausfallswinkel durchgeführt. Der Geschwindigkeitsverlust durch die Kollision mit der Bande entspricht dem Cosinus des Einfallswinkels (zum Lot) multipliziert mit einem Verlustfaktor.

Einlochen

Befindet sich eine Kugel in einem Loch, bekommt sie eine Geschwindigkeit in z-Richtung. Diese steigt mit jedem Zeitschritt an.

Geschwindigkeit aktualisieren

Da auf dem Tisch Reibung herscht wird in jedem Zeitschritt die Geschwindigkeit um einen konstanten Betrag verringert.