Einzelnen Beitrag anzeigen

Benutzerbild von jfheins
jfheins

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

Re: Pixelgenau Kollision zwischen kreisen & Rechtecken

  Alt 16. Sep 2008, 13:10
Hm . das ist nicht so einfach.

1. Da die Berechnung etwas mehr Zeit kostet, solltest du mit BoundaryBox-oder -Circle überprüfen, ob sie sich schneiden können.
(optional, kannte auch erst machen, wenn du Performanceprobleme bekommst.)

Dann die eigentliche überprüfung:

Mein Ansatrtz wäre wie folgt:

Ausgangswete: 1 Ortsvektor_Kreis, 1 Ortsvektor_Rechteck, Radius_Kreis, Höhe_Rechteck, Breite_Rechteck.

1. Bilde den Differenzvektor.
(Wenn du keine BoundaryBox verwendest, kannst du hier übeprüfen: wenn länge > (radius + sqrt(rechtechhöhe²+rechteckbreite²)) dann berühren sie sich nicht.)
Kreisradius abziehen. Also Vektor = Vektor * (1 - Radius/Betrag(Vektor))

Wenn jetzt Betrag(Vektor_x) kleiner ist als die Breite, oder Betrag(Vektor_y) kleiner ist als die Höhe, dann berühren sie sich

Hmmm ... neee, nochmal nachgedacht, das passt irgendwie noch nicht so richtig ... Mist
  Mit Zitat antworten Zitat