Kugel Kollision java /blueJ?
Hey ich wollte mal fragen, wie man eine vernünftige Kollision zweier Kugeln in blueJ/Java programmieren kann. Wir dürfen leider nur den import: sum.Kern nutzen, weshalb sich das alles etwas schwieriger erweist als gedacht...
Ausgangspunkt: 4 kugeln die sich alle bewegen (diago, vertical, horizontal) alle kugeln prallen vom rand ab.
1 Antwort
Die Kollision zweier Kugeln ist an sich ganz einfach. Du berechnest den Abstand der Mittelpunkte der Kugeln zueinander und schaust, ob der Größer als die addierten Radii ist.
Wenn nicht, dann kollidieren die Kugeln.
Üblicherweise macht man es so. Man rechnet ja zumeist sowieso Zeitschritt für Zeitschritt, da fällt das nicht auf. Und in der Natur würden sich Gegenstände ja leicht verforem bevor sie abprallen, somit auch leicht überlappen bevor sie auseinandergehen.
Wenn du möchtest, dass es nicht zu einer Durchquerung des Randes kommt, dann müsstest du entweder den Zeitschritt anpassen (so, dass eine Kugel sich im nächstem Zeitschritt bei ihrer aktuellen Geschwindigkeit maximal bis zum Rand bewegen kann) oder ein komplexeres Gleichungssystem lösen (was echt kompliziert wird, da du Differentialgleichungen höherer Ordnung hast).
Ja ich weiß..aber das ist leider nicht so schön. Es soll ja abprallen, sobald der Rand berührt wird