Ebenen - Strecken - Schnittpunkt
-
Hi!
Ich bin immer noch am rätseln, wie ich den Schnittpunkt zwischen einer Ebene und einem Strecke(in dem Fall ersteinmal ein Strahl) berechnen kann. Habe mir dazu mal jetzt LaTex reingezogen, aber wie gestern feststellen durfte, ist Mathe mein schlechtestes Fach und brauche dazu mal jemanden, der auf Fehler prüft. Es geht darum, dass ich das als Programm umgesetzt habe, und da funktioniert es nicht.Also ich habe folgende Ebenengleichung:
Dazu folgende Geradengleichung (nur t ist variable, alles andere ist bekannt)
Eingesetzt in die Ebenengleichung um t für den Schnittpunkt zu finden:
Das Punktprodukt aufgelöst
Das, was nichts mit t zu tun hat, kommt auf die rechte Seite um t ausklammern zu können.
Hier steht nun t auf einer Seite
Nach Vektoren ordnen
Punktprodukt1
Punktprdoukt2
eingesetzt
ist das so korrekt?
mfg olli
Edit:
Hier noch ein BeispielEbenengleichung
Punkt 0
Punkt 1
Eingesetzt
Punktprodukt berechnet
t ist unendlich, sollte aber 0,5 sein
t=\infinEdit: hmmm, die Vektoren bei Wiki funktionieren hier irgendwie nicht. Warum ist LaTex hier eigentlich so verdammt lahm?
-
Sieht für mich auf den ersten Blick relativ kompliziert aus, was du da gemacht hast.
Am einfachsten ist es, wenn die Ebene als Kompontengleichung darstelltst: Ax + Bx + CX + D = 0. Wobei hier A, B und C die Komponenten des Normalenvektors darstellen (damit solltest du die Komponentenform auch ganz einfach aus der vektoriellen Darstellung bestimmen können).Eine vektorielle Geradengleichung lässt sich auch in die Komponentenschreibweise umschreiben.
vec x = (x;y;z)
vec a = (a1;a2;a3)
vec b = (b1;b2;b3)vec x = vec a + t * vec b
x = a1 + t * b1
y = a2 + t * b2
z = a3 + t * b3Diese drei Gleichungen setzt du in die eine Gleichung der Ebene ein.
Ax + By + Cz + D = 0
A * (a1 + t * b1) + B (a2 + t * b2) + C * (a3 + t * b3) + D = 0Die daraus resultierende Gleichung musst du nur nach t umformen und t dann in die vektorielle Geradengleichung einsetzen. SchwupDiWup hast du den Schnittpunkt von Ebene und Geraden.
Das ganze sollte sich auch prima in SourceCode umsetzen lassen (halt noch ein wenig auformulieren, optimieren).Mfg, morphis
-
Noch viel einfacher: <N,P0 + t(P1-P0)> = <N,P0> + t <N,P1-P0> = d
also: t = (d - <N,P0>) / <N,P1-P0> = (d - <N,P0>) / (<N,P1>-<N,P0>)Du musst dich unterwegs irgendwo mit nem Vorzeichen vertan haben oder so.
edit: Du musst natürlich aufpassen, dass <N,P1-P0> != 0. Wenn <N,P1-P0> == 0, dann steht der Richtungsvektor der geraden senkrecht auf der Normalen, also ist die Gerade parallel zur Ebenen. Also gibt es keinen Schnittpunkt.
-
oder massig.
-
Danke euch. Taurin, Mensch, du bist genial! Gut zu wissen, dass <a;b+c> = <a;b>+<a;c> sowie <a;sb> = s<a;b> ist.
Mein verkorkstes Beispiel funktioniert mit der Gleichung perfekt!
mfg olli
-
man nennt das erste additivitaet, das zwote homogenitaet, zusammen linearitaet im zwoten eingang.
-
Vertex schrieb:
Danke euch. Taurin, Mensch, du bist genial! Gut zu wissen, dass <a;b+c> = <a;b>+<a;c> sowie <a;sb> = s<a;b> ist.
Mein verkorkstes Beispiel funktioniert mit der Gleichung perfekt!
mfg olli
Büdde Dazu gilt noch (u.a.): <a,b> = <b,a>, <sa,b> = s<a,b>
Du kannst ja mal als "Übungsaufgabe" versuchen, diese ganzen Eigenschaften des Skalarproduktes im R^n zu beweisen, damit du verstehst, warum das alles gilt.
-
eigentlich sinds ja teile der definition des begriffs "(reelles) skalarprodukt".
eine typische aufgabe waere, zu beweisen, dass die komponentenproduktsumme eines ist.
-
PeterTheMaster schrieb:
eigentlich sinds ja teile der definition des begriffs "(reelles) skalarprodukt".
eine typische aufgabe waere, zu beweisen, dass die komponentenproduktsumme eines ist.Das ist Haarspalterrei, mit der man sich rumplagen kann, wenn man anfängt, die ganze Kiste formal zu definieren. Als Schüler (Vertex, du bist doch noch einer?) muss man sich damit nicht beschäftigen. Verwirrt wahrscheinlich erstmal mehr, als das es hilft.