[Kollisionserkennung] Rechteck & Kreis?
-
Hi,
Ich bräuchte eine Kollisionserkennung für ein Rechteck und einen Kreis (Also 2D!).
Habe schon "SDL_Collide" gefunden aber da ist das leider nicht dabei.
Natürlich könnte ich das auch schnell selbst Implementieren aber dafür wird es sicherlich schon was geben (die bestimmt auch besser sind :)) also warum das Rad neu erfinden.
Also wäre schön wenn jemand auf die Schnelle etwas passendes hat.Danke schonmal.
schirrmie
-
gibts soweit ich weis nix vordefiniertes, musste schon selbermachen

SDL ist ja auch keine physikbibliothek
-
kollisionserkennung rechteck kreis:
Abstand der Eckpunkte vom Rechteck zum Kreiszentrum kleiner als der kreisradius, dann gibts ne kollision.
Damit nicht für jedes Frame alle vier eckpukte gecheckt werden müssen, sollte man nur dann anfangen alle vier Eckpunkte durchzurechnen, wenn der Abstand Beider Zentren kleiner ist, als der Radius des Kreis plus dem Abstand Recheckzentrum recheck ecke.da das alles so winzige formeln sind, auf die eigentlich jeder selbst kommen sollt, sind die niergends in einer Bibliothek zusammengefasst.
-
Krux schrieb:
kollisionserkennung rechteck kreis:
Abstand der Eckpunkte vom Rechteck zum Kreiszentrum kleiner als der kreisradius, dann gibts ne kollision.
Das ist zwar hinreichend, aber nicht notwendig. Kreis und Rechteck können auch kollidieren, ohne dass die Eckpunkte an der Kollision beteiligt sind.
Vielleicht solltest Du über diese winzigen Formeln dann nochmal nachdenken.

-
Erstmal danke für die Antworten. Wie gesagt Ich könnte (und muss ja anscheinend auch) selbst Implementieren dachte mir nur das es schon was fertiges gibt und wollte nicht drüber nachdenken :p
schirrmie
-
Ich hab dir mal was aufgemalt:
http://img111.imageshack.us/img111/7691/kreisrechteckce9.png
-
Hui soviel Anteilnahme und Aufwand

Ja danke. Ich hab das erstmal mit den Eckpunkten Implementiert das reicht erstmal. Das mit den Kanten kommt mal in irgendeiner durchzechten Nacht
Danke!schirrmie
-
Den Abstand zu ner Kante zu berechnen ist aber einfacher als zu nem Punkt

-
TomasRiker schrieb:
Den Abstand zu ner Kante zu berechnen ist aber einfacher als zu nem Punkt

ist es das ?
-
Ja, wenn es ein achsenausgerichtetes Rechteck ist, braucht man nur eine Differenz.
Ansonsten halt in die Hessesche Normalform einsetzen.
-
Das selbe frag ich mich auch gerade!
Den Abstand zwischen den beiden Punkten hab ich jetzt mit "Satz des Pythagoras" gemacht, geht das noch einfacher? Also ohne Wurzel ziehen?schirrmie
-
Naja, du kannst die Quadrate vergleichen... also (r1+r2)^2 < (a^2 + b^2)