AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Vom Vektor zur Ebene

Ein Thema von juniorA · begonnen am 16. Jun 2013 · letzter Beitrag vom 25. Jun 2013
Antwort Antwort
MichaG42

Registriert seit: 6. Mai 2013
Ort: Magdeburg
4 Beiträge
 
#1

AW: Vom Vektor zur Ebene

  Alt 23. Jun 2013, 13:11
Hallo,

ein bisschen rate ich jetzt auch ... vielleicht hilft dir ja dieser kurze Beitrag https://www.youtube.com/watch?v=6IXMaGQnMlQ.
Wenn ich das richtig in Erinnerung habe, reicht ja 1 Punkt (Stützvektor) und 2 (Richtungs-)Vektoren um eine Ebene auzuspannen. (danach kann geprüft werden, ob ein Punkt auf der Ebene liegt oder Eben nicht)
Also wie gezeigt den Punkt P als Ausgangspunkt(Stützvektor für Ebenengleichung E1).
Die beiden Multiplikatoren r und s berechnen! (Gleichungssystem lösen - einsetzen in die Ebenengleichung - sollte E1 ergeben). Analog Gleichungen für E2 und E3 aufstellen und die Punkte berechnen
Die beiden anderen Ebenengleichungen sollten sich aus den Endpunkten der beiden Vektoren (Stützvektoren E2 und E3) ergen. (also 1 Ebene und 3 Ebenengleichungen um die selbe Ebene zu beschreiben)
Um einen Schnittpunkt mit der Ebene zu berechnen wäre, glaube ich noch ein zweiter Punkt nötig. Was wohl ginge, wäre die Angabe eines Richtungsvektors, die im rechten Winkel zur Ebene steht und dann durch "Verschiebung" auf der Ebene entsprechende Gradengleichungen ergibt.

Hoffentlich habe ich dich jetzt nicht noch mehr verwirrt. Möchte ja nur helfen .. und sorry an alle Mathematiker oder mathematisch interessierten unter Euch.

Viel Erfolg

cu Micha
Michael
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: Vom Vektor zur Ebene

  Alt 23. Jun 2013, 15:14
Sry, aber aus deinen 3 Beiträgen werde ich nicht schlau...
Dein letzter Beitrag ist am verwirrendsten. Versuchs mal mit einer 3D-Skizze!
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
juniorA

Registriert seit: 14. Sep 2011
112 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Vom Vektor zur Ebene

  Alt 23. Jun 2013, 16:08
um die Sache etwas zu vereinfachen Zhabe ich mal ein Skizze gemacht.
Was ich habe ist der Punkt P mit den Raumkoordinaten PX, PY, PZ und den Abstand von V1 zu P und V2 zu V1.

Was ich suche sind 3 Punkte E1, E2, E3 der Ebene auf der V1 V2 senkrecht steht.
Zwei Punkte auf der Fläche dürfte ich ja schon mit P und V1 haben. Also kann E1 und E2 schon wegfallen. Wie komme ich aber an die XYZ Koordinate von E3 ???
Angehängte Grafiken
Dateityp: png skizze_ebene_vektor.png (237,9 KB, 20x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: Vom Vektor zur Ebene

  Alt 23. Jun 2013, 16:32
Nein, du kannst E1..E3 eig. so gar nicht bestimmen, es fehlen wichtige Informationen:
- du scheinst nach den "Ecktpunkten" eines viereckigen Objektes zu suchen, nicht nach bestimmten Punkten der "Ebene" (Ebene != Viereck)
- sofern es sich um ein viereckiges Objekt handelt, können wir weiter reden..:
- wo genau steht der Punkt v1 auf diesem viereck? In der Mitte?
- achja, mit p, abstand zu v1, abstand zu v2 kannste im Grunde unendlich viele v1 und v2 berechnen, weil die Lage im Raum nicht bekannt ist (Drehung)

Um was geht es eigentlich - versuch mal, zu erklären, was für ein Problem du mit diesem Vorhaben lösen willst - vlt gehts ja einfacher!
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
juniorA

Registriert seit: 14. Sep 2011
112 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Vom Vektor zur Ebene

  Alt 23. Jun 2013, 17:42
der Punkt steht in der Mitte der Fläche (Rechteck). P ist genau in der Mitte der Kante (blöd gezeichnet).
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Vom Vektor zur Ebene

  Alt 23. Jun 2013, 20:12
Ist v1 zufällig genau das Kreuzprodukt von v2 und (E2 E3)? Dann könnte man, unter der Voraussetzung, dass es sich um ein Rechteck handelt, also die Winkel alle 90° sind, den Vektor (E2 E3) bestimmen, indem man die Formel für das Kreuzprodukt umstellt. Falls v1 nicht das Kreuzprodukt ist, dann ist es leider unterbestimmt. Du brauchst zumindest die Länge von (E2 E3).
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Vom Vektor zur Ebene

  Alt 23. Jun 2013, 22:43
um die sache etwas zu vereinfachen zhabe ich mal ein skizze gemacht.
Was ich habe ist der punkt p mit den raumkoordinaten px, py, pz und den abstand von v1 zu p und v2 zu v1.

Was ich suche sind 3 punkte e1, e2, e3 der ebene auf der v1 v2 senkrecht steht.
Zwei punkte auf der fläche dürfte ich ja schon mit p und v1 haben. Also kann e1 und e2 schon wegfallen. Wie komme ich aber an die xyz koordinate von e3 ???
e3 := (v2-v1) x (p-v1) + v1
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
juniorA

Registriert seit: 14. Sep 2011
112 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: Vom Vektor zur Ebene

  Alt 24. Jun 2013, 11:49
Leider noch nicht am Ziel

Habe es eben mit den Vorschlag E3 := (V2-V1) x (P-V1) + V1 siehe Quelltext versucht aber da kommt nicht das gewünschte Ergebnis raus.

In meinem Beispiel hat P als Ausgangspunkt und ein Punkt der Dreiecksfläche E1 die Koordinaten (10, 0, 5) im Weltkoordinatensystem.
Auf den 2. Punkt der Dreiecksfläche E2, steht eine Senkrechte. Der Anfangspunt der Senkrechten hat eine Differenz zu P von (-5, 0,-5). Es ergeben sich damit die Weltkoordinaten für E2 von (5, 0, 0). Der Endpunkt der Senkrechten V2 hat zum Anfangspunkt der Senkrechten V1 eine Differenz von (-5, 0, 5).
Für den Punkt E3 gilt:
Der Abstand zu V1 = Abstand von V1 zu P = Abstand von V1 zu V2.
Weiter ist der Winkel P/V1/E3, P/V1/V2 und V2/V1/E3 0 90°.
Wie kann ich mir nun E3 ausrechnen, wenn P, V1 und V2 gegeben sind?

Das Ergebnis ist im Beispiel (5, 5, 0) aber wie kann ich mir dieses ausrechnen?

Habe dazu auch noch einmal eine Skizze gemacht.

Delphi-Quellcode:

type Tpoint3D = record
     X : single;
     Y : single;
     Z : single;
     end;

//------------------------------------------------------------------------------
// Bestimmen des 3. Punktes einer Fläche
//------------------------------------------------------------------------------
procedure fl_3Punkte(p, v1, v2 : TPoint3D; var E1, E2, E3 : TPoint3D);
var d1, d2, kp : TPoint3D;

begin
  E1 := P;

  E2.x := p.x + v1.x;
  E2.y := p.y + v1.y;
  E2.z := p.z + v1.z;

  // EP3 = (V2-V1) x (P-V1) + V1 ????
  d1.x := v2.x - v1.x;
  d1.y := v2.y - v1.y;
  d1.z := v2.z - v1.z;

  d2.x := p.x - v1.x;
  d2.y := p.y - v1.y;
  d2.z := p.z - v1.z;

  kp.x := (d1.y*d2.z) - (d2.y*d1.z);
  kp.y := (d1.z*d2.x) - (d2.z*d1.x);
  kp.z := (d1.x*d2.y) - (d2.x*d1.y);

  E3.x:= kp.x + v1.x;
  E3.y:= kp.y + v1.y;
  E3.z:= kp.z + v1.z;
end;
Angehängte Grafiken
Dateityp: jpg 3Punkt.jpg (33,5 KB, 13x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Vom Vektor zur Ebene

  Alt 24. Jun 2013, 12:38
Deine Bezeichnungen von V1 und V2 passen in der Zeichnung nicht zu den Werten. V1 und V2 sind offensichtlich als Differenzvektoren angegeben. Insofern ist die Angabe V1 = E2 schon mal falsch, was du ja auch in deinem Code eindrucksvoll belegst:
Delphi-Quellcode:
  E2.x := p.x + v1.x;
  E2.y := p.y + v1.y;
  E2.z := p.z + v1.z;
Demnach müsste die Berechnung mit dieser Notation also folgendermaßen sein:
Delphi-Quellcode:
v3 := v1 X v2
E3 := E2 + k*v3
oder im Code:
Delphi-Quellcode:
  v3.x := (v1.y*v2.z) - (v2.y*v1.z);
  v3.y := (v1.z*v2.x) - (v2.z*v1.x);
  v3.z := (v1.x*v2.y) - (v2.x*v1.y);
Der Faktor k muss dann eben so gewählt werden, daß die Abstandsbedingung eingehalten wird - sollte nicht so schwer sein. Du kanns k auch negativ machen, um die zweite mögliche Lösung zu bekommen, die nach den gegebenen Bedingungen möglich ist.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
juniorA

Registriert seit: 14. Sep 2011
112 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

AW: Vom Vektor zur Ebene

  Alt 24. Jun 2013, 14:44
dem Ziel schon ganz nahe,
also erst einmal Danke.

Mit der Berechnung von E2 hattest Du Recht, V1 ist ja Differenz und P fehlte.

der Quelltext sieht jetzt wie folgt aus
Delphi-Quellcode:
type Tpoint3D = record
     X : single;
     Y : single;
     Z : single;
     end;


//------------------------------------------------------------------------------
// Bestimmen des 3. Punktes einer Fläche
//------------------------------------------------------------------------------
procedure fl_3Punkte(p, v1, v2 : TPoint3D; var E1, E2, E3 : TPoint3D);
var v3 : TPoint3D;
    k : single;

begin
  k := 1;

  E1 := P;

  E2.x := p.x + v1.x;
  E2.y := p.y + v1.y;
  E2.z := p.z + v1.z;

  v3.x := (v1.y*v2.z) - (v2.y*v1.z);
  v3.y := (v1.z*v2.x) - (v2.z*v1.x);
  v3.z := (v1.x*v2.y) - (v2.x*v1.y);

  E3.x := E2.x + k*v3.x;
  E3.y := E2.y + k*v3.y;
  E3.z := E2.z + k*v3.z;
end;

function set_point3(x, y, z : single) : TPoint3D;
begin
  result.x := x;
  result.y := y;
  result.z := z;
end;


.....
Aufruf fl_3Punkte
  fl_3Punkte(set_point3(10, 0,5), set_point3(-5, 0, -5), set_Point3(-5, 0, 5), E1, E2, E3);

Als Ergebnis bekomme ich
E1 = (10,0,5)
E2 = (5,0,0)
E3 = (5, [COLOR="Red"]50[/COLOR], 0)
wenn ich als Faktor k=1 angegeben habe, hatte ich erwartet, dass E3.y = 5 und nicht 50 ist. Mit k = 0.1 erscheint dort 5. Was hat es mit den Faktor auf sich oder ist noch wo anders etwas vergraben?

Beste Grüße
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz