Strecken Länge in Raum berechnen

Neue Frage »

WilliamR Auf diesen Beitrag antworten »
Strecken Länge in Raum berechnen
Meine Frage:
Hallo,

ich hab mal ein recht simples Rätsel, aber ich komme nicht auf die Lösung, die ich mir vorstelle. Deshalb frage ich mal hier. smile

Ich möchte ausrechnen, wie lang der Abschnitt einer Strecke zwischen zwei Ebenen ist.

Gegen sind ein Start und Endpunkt für meine Strecke sowie zwei z-Werte für die beiden Ebenen. Die Ebenen sind also senkrecht zur Z-Achse.

Im Anhang ist eine Grafik zu sehen, die das Problem verdeutlicht.
[attach]34214[/attach]
Der rote Teil ist gesucht. An sich kann ich mir schon ganz gut vorstellen, wie man das Problem lösen soll. Man kann im 3D-Bereich die Schnittpunkte der Geraden mit der unteren und der oberen Ebene berechnen. Daraus kann man sicherlich recht einfach errechnen wie groß der Teil zwischen den Ebenen ist. Das Problem ist dabei folgendes: Das ganze wird für Grafikprogrammierung benutzt und muss möglichst ohne Logik auskommen. Ich kann also nicht prüfen, ob die Strecke parallel zu den Ebenen verläuft.

Habt ihr noch einen anderen Ansatz für die Lösung des Problems?


Meine Ideen:
Ohne mit Formel durch die Gegend zu werfen:

- Gerade von Punkt A nach Punkt B berechnen (Parameterform)
- Schnittpunkt der Geraden mit beiden Ebenen
- mit ein wenig Logik kann bestimmt werden, wie lang er Abschnitt zwischen den Ebenen ist

Wie oben beschrieben, ist der Ansatz leider nicht optimal für die Umsetzung im Quelltext. unglücklich

Beste Grüße und Danke im Voraus
Dopap Auf diesen Beitrag antworten »
RE: Strecken Länge in Raum berechnen
Zitat:
Original von WilliamR
- Gerade von Punkt A nach Punkt B berechnen (Parameterform)
- Schnittpunkt der Geraden mit beiden Ebenen
- mit ein wenig Logik kann bestimmt werden, wie lang er Abschnitt zwischen den Ebenen ist


wenn der Fall oben links zutrifft, dann ist keine Logik notwendig.

Ich fürchte, die anderen Fälle benötigen reichlich Logik.
williamR Auf diesen Beitrag antworten »

Na an sich braucht man bei keinem Fall wirklich Logik. (die Pfeile verwirren, ich weiß was du meinst.) Aber es gibt wohl keine Lösung de alle Fälle abdeckt.

Was meinst du wäre mit Logik die schnellste Lösung?
Dopap Auf diesen Beitrag antworten »

man kann die Ebenen E1, E2 ( gleich ) orientieren .
Es gibt dann orientierte Abstände für Punkte .

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
IF d(E1,A)<0 AND d(E2,B)>0 OR  d(E1,B)<0 AND d(E2,A)>0
THEN Fall oben links END

IF d(E1,A)<0 AND d(E1,B)<0 OR  d(E2,A)>0 AND d(E2,B)>0  
THEN Fall oben rechts END

IF d(E1,A)>0 AND d(E2,A)<0 AND d(E1,B)>0 AND d(E2,B)<0
THEN Fall unten links END

IF ...... THEN Fall unten rechts END


man kann das durch Verschachtelung der Abfragen etwas verkürzen, aber einfacher wird es nicht.
williamR Auf diesen Beitrag antworten »

Alles klar, dann werde ich das so machen. Ich muss halt mal gucken wie das mit If then else Blöcken so geht. Wahrscheinlich ist das etwas, was man hinnehmen muss..

Danke!
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »