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 rastersgrüße
Steveedit: 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