Einzelnen Beitrag anzeigen

Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#9

AW: Kollision mit Reflektion - Ich raffs net...

  Alt 10. Feb 2011, 22:16
Du würdest dir mit Vektoren wesentlich einfacher tun.
Zitat:
ich speicher übrigens nicht die xy sondern den winkel für den ball hilft mir das irgendwie weiter?
ich glaub das kann ich so gar nicht machen oder?
Genau dafür sind die nämlich praktisch - anstatt des Winkels speicherst du ein deltaX und ein deltaY. Und jedesmal, wenn sich der Ball bewegen soll, veränderst du seine X Postition um deltaX udn seine Y Position um deltaY.

Die Prozedur sieht dann so aus:
Delphi-Quellcode:
procedure TFormMain.MoveByAngle(pWinkel: Integer);
begin
    SBall.Top := SBall.Top + deltaX;
    SBall.Left := SBall.Left + deltaY;
end;
Und über diese deltas steuerst du dann die Bewegungsrichtung.

P.S.: In diesem Zusammenhang ist ein "Vektor" auch nur etwas, um 2 Zahlen "zusammenzufassen". die kannst also deltaX und deltaY als einen Vektor interpretieren. Oder CBall.Left und SBall.Top als einen Vektor.
Zitat:
venn VNeu darstellt wo sich der Ball jetzt befinden wird und VAlt wo der Ball vorher war, woher nehme ich dann den Normalenvektor der Fläche (ich denke mal das soll z.B. der Schläger oder der Brick sein)
Und worauf basiert die Formel? 2* den alten Vektor*Normalenvektor und dann nochmal * den Normalenvektor ...
Und das v aus meinem Beitrag ist dann genau dieser Vektor deltaX/deltaY. Das v ist also nicht die Position, sondern die Geschwindigkeit des Balls!
Die Formel basiert auf Einfallswinkel=Ausfallswinkel. Habe ich vorhin selbst hergeleitet, aber ist sicher noch woanders zu finden.[1] [2] Den Normalenvektor der Fläche musst du wissen - wenn der Ball z.B. oben an den Rand gestoßen ist, dann ist der Normalenvektor (0|1) (Y Achse zeigt ja nach unten, daher +1)
Ach, und: Die Produkte sind Skalarprodukte, die musst du schon genau so rechnen. Assoziativgesetz gilt nicht, also die Klammern sind wichtig!

ich hoffe das hat mehr geholfen als verwirrt

Geändert von jfheins (10. Feb 2011 um 22:22 Uhr)