Schnittgerade zweier Ebenen ermitteln



  • Hallo,

    ich habe hier zwei Dreiecke a1,b1,c1 und a2,b2,c2, deren Eckpunke a,b und c jeweils durch Koordinaten x,y und z festgelegt sind (die liegen also in einem 3D-Raum). Diese Dreiecke definieren mir zwei Ebenen im Raum (die nicht auf die Grenzen des Dreiecks beschränkt sind). Jetzt würde ich gerne die Gerade ermitteln, in der sich diese Ebenen schneiden.

    So weit ich das mittlerweile heraus bekommen habe, muss ich dafür die Ebenengleichungen der beiden Dreiecke aufstellen, diese gegeneinander einsetzen und so auflösen, dass ich eine Geradengleichung erhalte.

    Da geht mein Problem allerdings los: Die Geradengleichung kann ich noch, aber selbst nach intensivem Studium von Seiten wie z.B. http://de.wikipedia.org/wiki/Ebene_(Mathematik)#Ebenengleichung oder http://de.wikipedia.org/wiki/Hessesche_Normalform blicke ich nicht durch (was wohl unter anderem daran liegt, dass ich die Notation der Formeln dort schon nicht verstehe, da ich das in der Schule nie hatte).

    Deswegen: kann mir jemand helfen, diese Formeln in verständlicheres umzuwandeln, woraus ich mir dann C-Code zusammenbauen kann, der mir die Schnittgerade meiner beiden Dreiecke errechnet?

    Dagger^



  • Kannst du was mit Vektorrechnung anfangen?



  • Für die beiden Ebenengleichungen gibt es unendlich viele Möglichkeiten, z.B. die folgende:

    E1(s,t)=a1+s(b1-a1)+t(c1-a1)
    E2(u,v)=a2+u(b2-a2)+v(c2-a2)

    Die beiden Gleichungen gleichsetzen, dann s und t eleminieren, den Rest nach u auflösen, dann das eben aufgelöste für u in die Gleichung 2 einsetzen und vereinfachen. Das Ergebnis ist dann eine Geradengleichung g(v)

    Das funktioniert allerdings nur, falls die Ebenen tatsächlich eine Schnittgerade haben. Es ist auch nicht die eleganteste Lösung.



  • wx++ schrieb:

    Kannst du was mit Vektorrechnung anfangen?

    Ja, das geht noch 🙂



  • Allgemein ist die Schnittgerade die Menge aller Punkte, die Teil beider Ebenen sind. D.h. rein prinzipiell einfach Gleichungssystem aufstellen und lösen (6 Gleichungen in 6 Variablen).

    Wenn man aber für einen Moment nachdenkt, dann wird man feststellen, dass die Schnittgerade orthogonal zu den Normalvektoren beider Ebenen verlaufen muss. D.h. die Richtung deiner Schnittgerade ist einfach das Kreuzprodukt der beiden Ebenennormalen. Dann musst du nur noch irgendeinen Punkt finden, der in beiden Ebenen (und damit auf der Geraden) liegt und bist fertig.

    Was genau willst du denn mit der Schnittgerade deiner Dreiecke dann anstellen? Vielleicht kann man dein Problem ja überhaupt noch viel einfacher lösen?




Anmelden zum Antworten