Also so ganz habe ich das mit den Vektoren noch nicht verstanden.
Vector2D vecPos = Position des Balls.
Vector2D vecVel = Geschwindigkeit und Verschiebung des Balls.
Also hat der Vektor vecVel seinen Ursprung in VecPos und sein Ende in vecPos + vecVel?
Nach dem Link „Reflecting a Vector“ müsste die Berechnung dann doch so aussehen. Wobei ich es in verschiedenen Varianten probiert habe und oft komische Ergebnisse bekomme. (Bälle weg, manche klumpen, ...) egal.
Hier mein Gedanke:
vecDiff = vecPos2-vecPos1
vecN = NormalenVektor(vecDiff)
beide normalisieren
vecVel1 = vecVel1 * (-2 * Dot(vecDiff, vecN)* vecN – vecDiff)
Mir erscheint es, als würde ich etwas nicht verstehen
J Die Lösung von oben habe ich auch mal getestet, dabei verschwinden meine Bälle aber ganz schnell nach rechts unten. Die Velocity wird extrem groß.
Hat jemand von euch noch einen link über diese Thematik?
Das Skalarprodukt soll die Winkelberechnung ersetzen? Irgendwie muss man doch auch die verschiedenen Geschwindigkeiten berücksichtigen damit der Ball in die richtige Richtung gekickt wird.
So wie beim Billard.
Eigentlich wollte ich das nicht so genau programmieren, aber jetzt nervt es mich, das ich das nicht so richtig hinbekomme. Und den echten Durchblick habe ich auch noch nicht.