Hi!
Ich kenn mich zwar nur mit
DirectX aus, aber 3D-Mathematik bleibt 3D-Mathematik
Irgendwie verstehe ich deinen Code nicht ganz.
Du errechnest dir aus deiner Mausposition ein Array mit 3 Werten x, y und z. Du nimmst an, das ist ein Punkt, was jedoch nicht sein kann, denn an der Stelle der Maus können sich unendlich viele Punkte im Raum befinden. Sprich, du kannst dir höchstens einen Strahl ausrechnen, eine Gerade, deren Punkte auf den Bildschirm an die Mausposition projiziert werden.
Warum benötigst du nur 2 Koordinaten? Es scheint so, als ob du nicht im 3D-Raum zeichnest, sondern in 2D. Welchen Sinn macht es, die Mauskoordinaten in den dreidimensionalen Raum umzurechnen, wenn du zweidimensionale Linien zeichnest? Die x/y-Werte der Mausposition entsprechen doch schon den Koordinaten auf der 2D-Bildfläche (höchstens dass
OpenGL in einem Intervall von [0,1] rechnet und du das noch berücksichtigen musst).
Und zu guter letzt wäre es noch nett, deinen Lösungsweg hier zu beschreiben. Jemand anderer, der eventuell das selbe Problem hat, kann dann von deiner Vorarbeit profitieren. Ansonsten ist dieser Thread relativ unnötig, da zwar das Problem, nicht aber die Lösung präsentiert wird.
Lg oli