DGL https://delphigl.com/forum/ |
|
Schnittpunkt zwischen Ebene und Sichtvektor https://delphigl.com/forum/viewtopic.php?f=20&t=6746 |
Seite 1 von 1 |
Autor: | Lord Horazont [ Do Jul 12, 2007 19:13 ] | ||
Betreff des Beitrags: | Schnittpunkt zwischen Ebene und Sichtvektor | ||
Hi Ich habe mal wieder ein Problem. Und zwar geht es darum, dass ich einen Punkt auf einer Ebene brauche. Die Ebene ist auf höhe 0.0 und nicht gedreht, also verläuft auf der X und Z-Achse. Alle Informationen die ich habe sind die Matrizen, ein Punkt unterhalb der Ebene und der Y-Wert der Ebene, wie gesagt 0.0. Ich möchte jetzt im prinzip den Abstand zwischen Ebene und "Auge" von dem Abstand zwischen "Auge" und Punkt subtrahieren, sodass ich den Abstand zwischen Ebene und Punkt auf dem Sichtvektor erhalte (ich hoffe, das war verständlich, ich hänge sicherheitshalber mal ne Skizze an). Irgendjemand eine Idee, wie ich das machen kann? Gruß Lord Horazont
|
Autor: | LarsMiddendorf [ Do Jul 12, 2007 20:22 ] |
Betreff des Beitrags: | |
Ja, das ist der richtige Weg um Nebel zu berechnen. Der Betrachter soll sich auf der Position b befinden. Die Gleichung des Strahles ist dann x(t) = b+ t * (gl_Vertex - b). (gl_Vertex in Weltkoordinaten) (grüner Pfeil = gl_Vertex - b ) t=0 ist bei der Betracherposition, t=1 auf der Weltgeometrie. Für die z-Koordiante gilt: x(t).z = b.z + t * (gl_Vertex.z - b.z) Wenn man das auf 0 setzt, ergibt sicht x(t).z = 0 = b.z + t * (gl_Vertex.z - b.z) 0 = b.z + t * (gl_Vertex.z - b.z) -b.z = t * (gl_Vertex.z - b.z) t = -b.z / (gl_Vertex.z - b.z) t gibt den Anteil des grünen Pfeils vor der Ebene an. Falls t<0 ist oder der Betrachter sich auf Höhe der Ebene (gl_Vertex.z - b.z=0) befindet gibt es keinen sinnvollen Schnittpunkt. Die Länge der Strecke (unter) der Ebene ist (1-t) * length(gl_Vertex -b) |
Autor: | Lord Horazont [ Fr Jul 13, 2007 06:02 ] |
Betreff des Beitrags: | |
Ok... Und was ist b? Der Punkt unter der Ebene ist ja jeweils gl_Vertex, aber wie komme ich auf b? Muss ich desweiteren gl_Vertex schon mit der ModelViewProjectionMatrix multiplizieren oder nur mit ModelViewMatrix? //Edit: achja, das ganze läuft in einer 3D-Szene ab, obwohl die skizze 2d ist. Gruß Lord Horazont |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |