Kollisionsberechnung: Strecke mit Dreieck



  • Hi,
    so hier kommt meine 2te frage 😉
    ich habe eine strecke zwischen zwei punkten und möchte herausfinden, ob sie durch ein dreieck geht. bisher habe ich es in einem raster überprüft, aber dann hat man eben immer nur die genauigkeit des rasters

    grüße
    Steve

    edit: im dreidimensionalem raum



  • Du kannst ganz einfach den Normalenvektor N des Dreiecks berechnen.
    Damit stellst du die Ebenengleichung des Dreiecks auf.

    Jetzt schaust du ob einer deiner beiden Punkt vor dem Dreieck liegt und der andere dahinter.
    Ist das nicht der Fall, dann kann die Strecke nicht schneiden.

    (Sollten beide Punkte in der Ebene liegen, dann erhältst du dasselbe Problem aber zweidimensional). Versuch dir den Fall selbst zu überlegen.

    Ansonsten setzt du die Gerade, die durch deine beiden Punkte verläuft, in die Ebenengleichung ein

    [EDIT]
    Du erhältst natürlich nur eine lineare Gleichung, die du lösen kannst wenn die
    Gerade nicht parallel zur Ebene verläuft.

    Das Ergebnis ist ein Parameter t mit dem du den Schnittpunkt ausrechnen kannst.
    Jetzt musst du schauen ob der Schnittpunkt im Dreieck liegt.
    [\EDIT]

    Dazu bildest du die Vektoren
    AB x N
    BC x N
    CA x N
    (du musst mal schauen ob die Orientierung stimmt, die Vektoren sollen alle
    aus dem Dreieck herauszeigen)

    Diese Vektoren zusammen mit der zugehörigen Ecke definieren jeweils
    eine Ebene, die durch eine Dreieckkante läuft und senkrecht zum Dreieck steht.
    Jetzt schaust du ob der Schnittpunkt vor einer Ebene liegt.
    Wenn ja, dann ist er ausserhalb sonst innerhalb.

    Viele Grüße
    Fischi



  • danke für deine antwort 🙂
    habs net ganz gecheckt, aber ich werds morgen ma durchdenken... hauptsache is ersma u wissen das es geht ^^

    grüße
    Steve


Anmelden zum Antworten