SAT-Kollision schneller Objekte
-
Hallo schon wieder.
Hab zwar heute schon einen Beitrag verfasst,aber egal.Ich hatte da so eine Idee die SAT auf schnelle Objekte anzuwenden.
Wenn jmd. mit etwas nicht einverstanden ist,oder etwas verbessern will,den bitte ich darum dies zu tun.Also ich hab jetzt schon die Minimum und Maximum Werte beider Polygone,die auf eine Achse projeziert wurden.
Als erstes Werden die Minimum bzw. Maximum Werte beider Polygone mit ihren jeweiligen Bewegungsvektoren verlängert und getestet,ob diese sich schneiden.
Wenn ja dann geht es zum nächsten Schritt,wenn aber nicht dann wird abgebrochen.
Nun berechne ich den Abstand des Minimum Wertes des 2. Polygons und dem Maximum Werte des 1. Polygons.
Dann dividiere ich diesen Wert durch die Summe beider Bewegungsvektoren.
Als letztes dividiere diesen Wert durch den Bewegunsvektor des ersten Polygons.So.Nun habe ich die Zeit der Kollision.
Als nächstes werden auf den anderen Achsen getestet,ob zu dieser Zeit die Polygone
sich schneiden.Danke fürs lesen.
[Edit]Ok es scheint so,als hätte ich etwas falsch gemacht.
Ich schreibe jetzt mal das richtige im Pseudo-Code(Rechnungen haben zumindestens funktioniert)Entfernung = Min2 - Max1; Entfernung /= BewVek1 - BewVek2; if (Entfernung != 0 && Entfernung < 1) Zeit = Entfernung; else if (Entfernung == 0) Zeit = 1;
-
1.) Relativkoordinatensystem waehlen, d.h. eins wo sich nur ein Koerper bewegt.
2.) Bewegungsvolumen berechnen. Bei linearer Bewegung einfach Objekt an Position Start und gleiches Objekt an Position Ende + konvexe Huelle.
3.) Kollisionserkennung zwischen Bewegungsvolumen und "ruhendem" Koerper.
4.) Anpassung des Zeitschrittes
5.) Gehe zu 1.)