Von Anfang an fühlt sich die Kollisionserkennung an wie ein O (n^2) Problem.Welche Technik sollte verwendet werden, um 2d Kollisionsprüfungen zu bereinigen?
Sie haben eine Reihe von Objekten und Sie müssen überprüfen, ob jedes Objekt mit einem der anderen Objekte kollidiert. Ich weiß jedoch, dass es sehr ineffektiv ist, jedes Objekt gegen alle anderen Objekte zu prüfen. Warum sollte eine relativ teure Kollisionsprüfung zwischen zwei Bällen stattfinden, wenn sie nicht einmal nahe beieinander sind?
Hier ist Beispiel meines einfachen Programms arbeite mich an:
Wenn Sie 1000 Kugeln haben dann, wenn Sie mit der naiven Kollisionserkennung gehen würden Sie 1000^2 Sammlung überprüft haben (a Million)! Diese Kollisionsprüfung wurde schnell zum Engpass in meiner Anwendung. I benötigen, um einige umfassende Phasenschnitt zu implementieren.
Welche Techniken sollten verwendet werden, um Kollisionskontrollen bei der Arbeit mit 2D - kreisförmigen Objekten zu reduzieren? Ich habe über QuadTrees, BSP, räumliches Hashing usw. gelesen, aber es ist schwierig herauszufinden, welche Methode für diesen Anwendungsfall am besten geeignet ist.
Weiß jemand, was am besten funktioniert?
Die zugehörigen Fragen zu meiner Antwort hinzugefügt und die Frage aus der Antwort entfernt, da sie ablenkend wirkt. – mmcdole
Schön gemacht, @ Simucal. –