2D-Kollisionserkennung
Aus Spieleprogrammierer-Wiki
(Unterschied zwischen Versionen)
[unmarkierte Version] | [gesichtete Version] |
(→Kollision Rechteck-Kreis (2D)) |
K (→Kollision Rechteck-Kreis (2D)) |
||
Zeile 459: | Zeile 459: | ||
===Kollision Rechteck-Kreis (2D)=== | ===Kollision Rechteck-Kreis (2D)=== | ||
Ein Rechteck fasst man als 4 Strecken auf. Man berechnet den Minimalen Abstand (und die Position des Basispunkts) des Kreises von allen 4 Seiten, nimmt von den 4 Abständen (bzw. deren Quadrate, um Wurzeln zu vermeiden) das Minimum. Wenn dieses kleiner als r² ist, dann kollidiert der Kreis mit dem Rechteck im dazugehörigen Basispunkt. | Ein Rechteck fasst man als 4 Strecken auf. Man berechnet den Minimalen Abstand (und die Position des Basispunkts) des Kreises von allen 4 Seiten, nimmt von den 4 Abständen (bzw. deren Quadrate, um Wurzeln zu vermeiden) das Minimum. Wenn dieses kleiner als r² ist, dann kollidiert der Kreis mit dem Rechteck im dazugehörigen Basispunkt. | ||
+ | |||
{{Spoiler|<xh4>Implementierung</xh4>| | {{Spoiler|<xh4>Implementierung</xh4>| | ||
Zeile 505: | Zeile 506: | ||
}} | }} | ||
}} | }} | ||
+ | |||
+ | ====Beliebige Polygone im 2-dimensionalen==== | ||
+ | Derselbe code kann auch für Beliebige konvexe Polygone verwendet werden, wenn man Rect durch eine Polygonklasse ersetzt (und den Modulo-Operator anpasst) |
Version vom 11. September 2012, 12:02 Uhr
Klicke hier, um diese Version anzusehen.