![]() |
Genaue Simulation zweier Kugeln
Hi ihr lieben Delphianer :-)
Folgendes: ich würde gerne ein kleines Programm schreiben, welches den Zusammenstoß von Kugeln simuliert. ich habe bereits einen Teil fertig, in dem kleine Bitmap-Kugeln an einer zufälligen Position mit einer bestimmten Richtung und einer bestimmten geschwindigkeit losgelassen werden. Die Kugeln verlieren dabei immer einen bestimmten Teil ihrer kinetischen Energie ( hatte himitsu glaub ich mal in einem Thread erläutert ). Den Zusammenstoß der Kugeln selbst bekomme ich jedoch noch nicht so hin. Könnt ihr mir vielleicht mal den mathematisch/physikalischen anzatz erklären, wie man einen dezentralen Stoß berechnet? Des weiteren sind meine bitmap-kugeln eckig.. Aber das sollte doch eigentlich kein problem sein, ich könnte ja einfach einen fiktiven radius für die kollisionsabfrage basteln. sehe ich das richtig? Bin für hinweise, anregungen und lösungsvorschläge jeglicher art sehr dankbar !! PS.: später einmal würde ich auch gerne die rotation der kugeln berücksichtigen... Wenn der rest funktioniert.. Danke, Christian |
Re: Genaue Simulation zweier Kugeln
Ein Hallöle von
![]()
Code:
Wenn also der Abstand zwischen den Kugeln kleiner ist als die beiden Radien zusammen sind die Kugeln zusammengestoßen.
* (X1, Y1)
|\ | \ Y | \ Z | \ | \ +-----* (X2, Y2) X c² = a² + b² Z² = X² + Y² Z² = (X1 - X2)² + (Y1 - Y2)² Sqr(Z) = Sqr(X1 - X2) + Sqr(Y1 - Y2) [color=darkblue][Z = Abstand zwischen den Kugelmittelpunkten][/color] R = R1 + R2 [color=darkblue][R = minimaler Abstand zwischen den Kukelmittelpunkten][/color]
Delphi-Quellcode:
Die Richtung des Zusammenstoßes kannst du aus der Richtung von Z erkennen.
Var X1, Y1, R1: Integer; {Mittelpunkt & Radius von Kugel 1}
Var X2, Y2, R2: Integer; {Mittelpunkt & Radius von Kugel 2} If Sqr(R1 + R2) > Sqr(X1 - X2) + Sqr(Y1 - Y2) Then {Kugeln stoßen zusammen oder stecken schon ineinander} Das wurde glaube schon das letzte mal berechnet. http://www.delphipraxis.net/images/common/divider.jpg ![]() ![]() ![]() |
Re: Genaue Simulation zweier Kugeln
Willst du auch einen Spin beruecksichtigen?
|
Re: Genaue Simulation zweier Kugeln
So ihr Lieben,
nach einigen Fehlschlägen am Wochenende hab ich jetzt endlich ein Programm geschrieben, dass die Kugeln vernünftig an den Wänden abprallen lässt.. Die Kollisionsabfrage funktioniert auch und die Kugeln gehorchen den Gesetzmäßigkeiten eines zentralen Stoßes. Soweit, so gut... Gesetzt den Fall ich würde auch noch Spin berücksichtigen wollen, wie sollte ich dann die Rotationsbewegung mit dem Bitmap realisieren? das bitmap einfach drehen? sieht das halbwegs aus? :cyclops: Christian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz