AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Genaue Simulation zweier Kugeln

Ein Thema von Christian_1980 · begonnen am 3. Dez 2003 · letzter Beitrag vom 8. Dez 2003
Antwort Antwort
Christian_1980

Registriert seit: 15. Aug 2003
50 Beiträge
 
Delphi 7 Professional
 
#1

Genaue Simulation zweier Kugeln

  Alt 3. Dez 2003, 15:19
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
-> If the mouse laughs at the cat, there is always a hole nearby <-
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

Re: Genaue Simulation zweier Kugeln

  Alt 3. Dez 2003, 16:04
Ein Hallöle von http://www.FrankNStein.de/Smiley-Wolke.gif,

Code:
  * (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]
Wenn also der Abstand zwischen den Kugeln kleiner ist als die beiden Radien zusammen sind die Kugeln zusammengestoßen.

Delphi-Quellcode:
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}
Die Richtung des Zusammenstoßes kannst du aus der Richtung von Z erkennen.
Das wurde glaube schon das letzte mal berechnet.


http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif
$2B or not $2B
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#3

Re: Genaue Simulation zweier Kugeln

  Alt 3. Dez 2003, 16:13
Willst du auch einen Spin beruecksichtigen?
  Mit Zitat antworten Zitat
Christian_1980

Registriert seit: 15. Aug 2003
50 Beiträge
 
Delphi 7 Professional
 
#4

Re: Genaue Simulation zweier Kugeln

  Alt 8. Dez 2003, 12:52
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?



Christian
-> If the mouse laughs at the cat, there is always a hole nearby <-
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz