________________________________________________________________________________
Inhalt....: Abstand windschiefer Geraden
Kategorie.: Unterrichtsmaterial
Mathematik: Geometrie R^3
MuPAD.....: 3.1.0
Datum.....: 2005-04-04
Autoren...: Achim Burgermeister <a.burgermeister@web.de>
Funktionen: matrix, |, solve, plot::Point3d, plot::Curve3d
________________________________________________________________________________
Abstand windschiefer Geraden
Gegeben sind die beiden Geraden g und h, die zueinander windschief sind.

Zunächst werden die Punkte P1 und P2 (Aufhängepunkte der Geraden) und die
Richtungsvektoren u und v eingegeben.
P1:= matrix([2,2,-3]): u:= matrix([0,1,2]):
P2:= matrix([4,1,0]): v:= matrix([4,3,-2]):
PlotP1:= plot::Point3d(P1, Color = RGB::Yellow):
PlotP2:= plot::Point3d(P2, Color = RGB::Blue):
g:= P1 + r * u:
h:= P2 + s * v:
Plotg:= plot::Curve3d(g, r = -10..10,
Legend="Gerade g",
LineColor=RGB::Orange,
LineWidth=0.6):
Ploth:= plot::Curve3d(h, s = -10..10,
Legend="Gerade h",
LineColor=RGB::ForestGreen,
LineWidth=0.6):
Jetzt werden Geraden mit ihren Aufhängepunkte gezeichnet :
Zeichnung( PlotP1, PlotP2, Plotg, Ploth ):

Um den Abstand der beiden Geraden berechnen zu können, wird durch die Gerade h
zunächst eine Ebene gelegt, die parallel zur Geraden g ist.
Eb:= P2 + r*u + s*v;
PlotEb:= plot::Surface(Eb, r = -8..8, s = -8..8,
ULinesVisible=FALSE,
VLinesVisible=FALSE,
FillColor=RGB::Blue.[0.2],
FillColorType=Flat,
Legend="Ebene E"
):

Zeichnung( PlotP1, PlotP2, Plotg, Ploth, PlotEb ):

Der Abstand des Aufhängepunktes von g von der Ebene E wird berechnet indem zunächst der
Normalenvektor n der Ebene eingezeichnet wird.
n:= linalg::crossProduct(u,v);
n0:= n/norm(n,2); // Einheitsvektor
n:= 5*n0:
Plotn:= plot::Arrow3d(P2, P2 + n,
LineColor=RGB::Red,
Legend="Normalenvektor")


![]()
Zeichnung( PlotP1, PlotP2, Plotg, Ploth, PlotEb, Plotn ):

P2P1:= P1-P2;
PlotP2P1:= plot::Arrow3d(P2, P2 + P2P1,
LineColor=RGB::Red,
LegendEntry=FALSE)

![]()
Zeichnung( PlotP1, PlotP2, Plotg, Ploth, PlotEb, Plotn,
PlotP2P1 ):

Hilfsebene durch den Aufhängepunkt der Geraden g
HEb:=P1 + r1*u + s1*v:
PlotHEb:=plot::Surface(HEb, r1 = -8..8, s1 = -8..8,
ULinesVisible=FALSE,
VLinesVisible=FALSE,
FillColor=RGB::Yellow.[0.3],
FillColorType=Flat,
Legend="Hilfsebene durch P1"
):
Zeichnung( PlotP1, PlotP2, Plotg, Ploth, PlotEb, PlotHEb, Plotn,
PlotP2P1 ):

Der Abstand errechnet sich hier als Länge des Vektors des Durchstoßpunkt Normalenvektor-
Hilfsebene und des Aufhängepunkts von h.
L:= solve(HEb=(P2+r*n0),{r,r1,s1});
r2:= L[1][1][2]
![]()
![]()
Es ergibt sich eine Länge von 3. In der folgenden Zeichnung wird der Abstand in Pink
eingezeichnet.
ll:= P2+r2*n0:
Plotl:= plot::Arrow3d(P2, ll,
LineColor=RGB::Black,
LineWidth=0.6,
LegendEntry=FALSE):
Zeichnung( PlotP1, PlotP2, Plotg, Ploth, PlotEb, PlotHEb, //Plotn,
PlotP2P1, Plotl ):

Die einfachere Berechnungsmethode:
Der Verbindungsvektor der beiden Aufhängepunkte wird auf den normierten Normalenvektor projiziert.
Dies wird hier nicht dargestellt.
r3:= linalg::scalarProduct(P2P1,n0);
h1:= P2+r3*n0-P1;
Ploth1:= plot::Curve3d(P1+h2*h1,h2=0..2,
Legend="Projektion",
LineWidth=0.7,
LineColor=RGB::Brown
):
Plotn0:= plot::Arrow3d(P2, P2+n0,
LineColor=RGB::Pink,
LineWidth=0.7,
Legend="n0 Einheitsvektor"):
Plotn4:= plot::Arrow3d(P2, P2+4*n0,
LineColor=RGB::Green,
LegendEntry=FALSE):
![]()

Zeichnung( PlotP1, PlotP2, Plotg, Ploth, PlotEb, PlotHEb, //Plotn,
PlotP2P1, Plotl, Ploth1, Plotn0, Plotn4 ):

PlotDreieck:= plot::Polygon3d([P2,P2+r3*n0,P1], Closed, Filled)
![]()
Zeichnung( PlotP1, PlotP2, Plotg, Ploth, PlotEb,
PlotP2P1, Ploth1, Plotn0, Plotn4, PlotDreieck ):

________________________________________________________________________________
Anmerkungen:
1. Weitere Anregungen finden Sie unter: http://schule.mupad.de bzw. http://studium.mupad.de
________________________________________________________________________________