Kurztutorial zum Geradenschnitt im dreidimensionalen Raum(mathematisch betrachtet)
Autor:ytwinky, MD
(unter Zuhilfenahme der Datei linalg01.ps)
(@duweißtschonwergemeintist :..nach langem Suchen im Internet..)
Situation:
  • Gegeben: zwei Geraden im dreidimensionalen Raum durch ihre Endpunkte(oder 2 verschiedene Punkte darauf)
  • Gesucht: Der Schnittpunkt dieser beiden Geraden(falls er existiert..)
  • Motto: Zwei Geraden treffen aufeinander! Oh, Leute, kniet mit mir, dies seltene Glück zu preisen(frei nach OTTO)
  • Voraussetzung: Von allen vier Punkten sind Koordinaten vorhanden
  • Ziel:Ein FreeBASIC-Programm
  • Der Weg:dorthin ist hart und führt über diese Gif-Datei(~182KB, also nicht besonders 'schwer'..)
Ich habe gewiß nicht allzuviel Gehirnschmalz verbraten(müssen), damit dieses Problem 'gelöst' werden kann..
Das, was für den räumlichen Geradenschnitt wichtig ist, habe ich als Gif-Datei herauskopiert und berichtigt, bzw. ergänzt
 
Vereinbarungen zur übersichtlicheren Darstellung:
(I): a.x+u*b.x-c.x-v*d.x=0
(II): a.y+u*b.y-c.y-v*d.y=0
(III):a.z+u*b.z-c.z-v*d.z=0
 
dx=a.x-c.x dy=c.y-a.y dz=c.z-a.z D1=b.y*d.x-b.x*d.y D2=b.z*d.y-b.y*d.z D3=b.z*d.x-b.x*d.z
 
Mit diesen Gleichungen können die Parameter u und v berechnet werden:
Aus (I), (II): u=(d.y*dx+d.x*dy)/D1 v=(b.y*dx+b.x*dy)/D1
Aus (II), (III): u=(d.y*dz+d.z*dy)/D2 v=(b.y*dz+b.z*dy)/D2
Aus (I), (III): u=(d.z*dx+d.x*dz)/D3 v=(b.z*dx+b.x*dz)/D3
(Es ist klar ersichtlich, daß zur Berechnung von u und v mindestens ein Di<>0 sein muß!)
Nun kann die Hauptbedingung berechnet werden:
D=dx*D2+dy*D3-dz*D1
Wenn D<>0 ist, können die Geraden sich nicht schneiden(wg. windschief)..
Nochmal zum Mitmeißeln: Nur wenn D=0 ist und mindestens ein Di<>0 ist, gibt es einen Schnittpunkt!
So sollte eine allgemeine Schnittpunktberechnung im dreidimensionalen (Grafik-)Raum möglich sein..
 
Viel Spaß im Forum
Gruß
ytwinky