Separating Axis Theorem - Hilfe



  • Hallo,

    ich möchte zwei Objekte mit Hilfe von "Separating Axis Theorem" auf Kollision prüfen, doch ich hab schwierigkeiten dabei. Hab schon den ganzen Tag im Internet gesucht und hab auch einiges gefunden doch komme troztem nicht weiter, bin schon halbverwirrt 😕
    Die Quelle: http://wiki.delphigl.com/index.php/Tutorial_Separating_Axis_Theorem

    1. Laut dem Tutorial muss man zuerst die Normale mit "x" und "y" berechnen...
    Was ich nicht verstehe ist, welche "x" und welche "y" ist damit gemeint?
    Das Rechteck hat vier Vektoren/Punkte (x,y):

    A______B
    |      |
    |______|
    D      C
    

    Da ich ein senkrechten Vektor von Seite DC berechnen möchte hab ich mal mit den Punkten D und C experemintiert, doch da kam nur blödsin heraus. Die blaue Line die im Bild ist konnte ich nicht berechnen.



  • Die Strecke von C->D spannt einen Vektor auf. Dessen x und y Komponenten sind damit gemeint (du willst ja auch die normale dieses "Streckenvektors" und nicht etwa die normalen von einem der beiden Punkte)

    Beispiel: C ist bei (2/2) und D ist bei (3/3). Die Strecke von C nach D kann man mit einem Vektor repräsentieren: C + Strecke = D; Strecke = C-D = (1/1)

    Dessen Normalen sind dementsprechend entweder (-1/1) ["linke"] oder (1/-1)["rechte"].



  • Vllt. hilft dir das Tut auch weiter wenn du nicht schon selber drauf gestoßen bist. Das schöne an diesem ist, es ist Interaktiv.

    http://www.metanetsoftware.com/technique/tutorialA.html

    mfg. Patrick_C64


Log in to reply