AGB  ·  Datenschutz  ·  Impressum  







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

Besonderes Abprallen nach Kollision

Ein Thema von TheAn00bis · begonnen am 23. Jun 2006 · letzter Beitrag vom 23. Jun 2006
 
TheAn00bis

Registriert seit: 7. Jun 2004
386 Beiträge
 
#1

Besonderes Abprallen nach Kollision

  Alt 23. Jun 2006, 10:34
Hey,

Ich habe hier ein schon fast mathematisches Problem, für welches ich momentan noch nicht einmal einen Lösungsansatz habe.

Es geht um Kollision in einem Spiel: Ein Ball trifft auf einen Schläger und soll abprallen. (siehe Anhang!) Der Winkel soll dabei von der Position des Auftreffens abhängig sein: Trifft der Ball in der Mitte des Schlägers auf, so wird er orthogonal zum Schläger wegfliegen, ganz außen parallel, dazwischen irgendwas zwischen 0° und 90°.

Die Bewegung des Balles wurde folgendermaßen umgesetzt: TBall hat die Attribute vX und vY für die Geschwindigkeiten und posX und posY für die Positionen. Außerdem gibt es size für die Größe. Die Bewegung ist dabei sehr einfach:

Delphi-Quellcode:
procedure TBall.Update;
begin
   posX := posX + vX;
   posY := posY + vY;
end;
PosX und posY gehen immer von der Ecke links unten des Objekts aus.

Diese Prozedur wird in sehr kurzem Intervall aufgerufen. Der Schläger kann sich auf der x-Achse bewegen, auch er hat die Eigenschaften posX und posY und sizeX, sizeY.

Meine Probleme sind folgende:

Wie kommte ich auf den Ausfallswinkel? Als erstes musss ich den Abstand berechnen, den der Ball von der Mitte hat, dies ist natürlich kein Problem: d = Schläger.posX+Schläger.sizeX/2 - Ball.posX-Ball.size/2. Aber wie komme ich vom Abstand auf den Winkel? Denn ein Abstand von 0 soll ja 90° ergeben, ein Abstand von Schläger.sizeX soll 0° ergeben. Und wenn ich den Winkel habe, wie gebe ich dem Ball dann diese Richtung?
Ich möchte die alte gesamt Geschwindigkeit beibehalten, dazu rechne ich über den Pythagoras v aus: v = sqrt(vx^2+vy^2). Die neue Richtung ergibt sich ja aus dem Verhältnis von vX und vY, aber wie komme ich vom Winkel auf dieses Verhältnis?

Ich würde mich freuen, wenn ihr mir bei einem Lösungsansatz behilflich wäret!
Angehängte Grafiken
Dateityp: jpg 1_207.jpg (29,7 KB, 67x aufgerufen)
  Mit Zitat antworten Zitat
 


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 19:34 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