Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#24

AW: Vom Vektor zur Ebene

  Alt 24. Jun 2013, 16:27
Das Kreuzprodukt multipliziert ja zwei Vektoren:

Delphi-Quellcode:
  v1 = (-5, 0,-5)
  v2 = (-5, 0, 5)

  v3.x := (v1.y*v2.z) - (v2.y*v1.z);
       => 0*5 - 0*-5 = 0
  v3.y := (v1.z*v2.x) - (v2.z*v1.x);
       => -5*-5 - 5*-5 = 50
  v3.z := (v1.x*v2.y) - (v2.x*v1.y);
       => -5*0 - -5*0 = 0
Da v1 und v2 senkrecht aufeinander stehen, ist |v3| = |v1|*|v2|, also dem Produkt der Längen der beiden Vektoren. Da beide Längen aber gleich sind, musst du k := 1/|v1| = 1/sqrt(50) setzen, damit v3 die gleiche Länge bekommt, wie die beiden andere v-Vektoren. Da v3 nur einen y-Anteil hat (v1 und v2 haben jeweils nur x/z-Anteile, spannen daher also eine Ebene in x/z auf), errechnet sich der zu ca. 7.

Dabei ist anzumerken, daß deine Lösung für E3 = (5, 5, 0) einen Abstand zu E2 = (5, 0, 0) von Sqrt((5-5)² + (5-0)² + (0-0)²) = Sqrt(25) hat, während der Abstand zwischen E1 = (10, 0, 5) und E2 mit Sqrt((10-5)² + (0-0)² + (5-0)²) = Sqrt(50) ist, was deiner Abstandsbedingung widerspricht. Der korrekte Wert für E3 wäre demnach (5, Sqrt(50), 0).
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat