Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: Genaue Simulation zweier Kugeln

  Alt 3. Dez 2003, 15: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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat