Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Schnittpunkt 3er Ebenen (https://www.delphipraxis.net/192733-schnittpunkt-3er-ebenen.html)

juniorA 15. Mai 2017 14:37

Schnittpunkt 3er Ebenen
 
ich habe mich wieder einmal im Raum verirrt und suche nach einer Funktion wo ich den Schnittpunkt (sofern es einen gibt) im Raum ermitteln kann.
Als Ausgang habe ich 3 Dreiecke, welche durch drei Punkte P1(x,y,z), P2(x,y,z) und P3(x,y,z) beschrieben sind.
Hab schon mal bei Gooogle nachgefragt aber bei den dort angeführten Beispielen muss ich leider passen.

hanvas 15. Mai 2017 15:18

AW: Schnittpunkt 3er Ebenen
 
Zitat:

Zitat von juniorA (Beitrag 1371491)
ich habe mich wieder einmal im Raum verirrt und suche nach einer Funktion wo ich den Schnittpunkt (sofern es einen gibt) im Raum ermitteln kann.
Als Ausgang habe ich 3 Dreiecke, welche durch drei Punkte P1(x,y,z), P2(x,y,z) und P3(x,y,z) beschrieben sind.
Hab schon mal bei Gooogle nachgefragt aber bei den dort angeführten Beispielen muss ich leider passen.

1. Berechne die Schnittebene zweier deiner drei Ebenen (Dreiecke) [1]
2. Berechne die Schnittebene der verbleibenden Ebene mit einer der beiden anderen. [1]

Dadurch ergeben sich zwei Geraden

3. Berechne den Schnittpunkt der sich ergebenenden Geraden [2]

Falls es einen Schnittpunkt gibt

4. Prüfe ob sich der Schnittpunkt innerhalb aller Dreiecke befindet. [3]

cu Ha-Jö


[1] http://www.nibis.de/~lbs-gym/Vektorp...nittEbenen.pdf
[2] http://www.delphipraxis.net/192708-v...rechnen-2.html
[3] https://prlbr.de/2014/liegt-der-punkt-im-dreieck/

Michael II 17. Mai 2017 16:26

AW: Schnittpunkt 3er Ebenen
 
Wenn du eine Prozedur hast, welche Lineare Gleichungssysteme lösen kann (da findest du sicher dutzende; u.a. auch hier in DP), dann kannst du es "ohne Vektorgeometrie" sehr einfach so tun:

1. Schritt
Dreieck D(P1, P2, P3) liegt in einer Ebene E: Ax + By + Cz + D = 0.
Die drei Punkte P1(x1,y1,z1), P2(x2,y2,z2), P3(x3,y3,z3) müssen E erfüllen.

Du musst also das lineare Gleichungssystem
P1 liegt in E: Ax1 + By1 + Cz1 + D = 0
P2 liegt in E: Ax2 + By2 + Cz2 + D = 0
P3 liegt in E: Ax3 + By3 + Cz3 + D = 0
nach A,B,C,D auflösen. (4 Unbekannte, 3 Gleichungen => Lösungsraum 1 dimensional [falls die Dreiecke echte Dreiecke sind])

Dies machst du für jedes Dreieck D1, D2, D3.
Du hast nun Koordinatengleichungen der 3 Ebenen E1, E2, E3 bestimmt.

2. Schritt:
Nun suchst du den Punkt S(x,y,z) (die Punkte), welcher in allen drei Ebenen E1,E2,E3 liegt.

Dies ist auch wieder ein lineares Gleichungssystem II
S liegt in E1: A1 x + B1 y + C1 z + D1 = 0
S liegt in E2: A2 x + B2 y + C2 z + D2 = 0
S liegt in E3: A3 x + B3 y + C3 z + D3 = 0
welches du nach den Unbekannten x,y,z auflösen musst.

Je nach Lage der Ebenen E1, E2, E3 ist der Lösungsraum von II
- leer, wenn zwei der Ebenen Ei, Ej parallel zueinander liegen und Ei<>EJ gilt
- 0-dimensional (1 gemeinsamer Schnittpunkt),
- 1 dimensional (E1,E2,E3 haben eine gemeinsame Schnittgerade),
- oder 2 dimensional, wenn E1=E2=E3, d.h. alle Dreiecke in der gleichen Ebene liegen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz