Registriert: Mo Mai 29, 2006 21:13 Beiträge: 142 Wohnort: Ballenstedt/Sachsen-Anhalt
Mal was mathematisches (sorry wenn's unter eurem Niveau ist )
Ich habe einen Punkt in einer schon ein Paar mal gedrehten Matrix (glRotate/glTranslate), und möchte wissen, wo der in einer Identity-Matrix liegen würde.
Der Punkt wird nach ein paar mal Rotate/Translate erreicht. Für spätere Berechnungen müsste ich jetzt aber wissen, wo ich (bezogen auf die IdentityMatrix) rausgekommen bin.
Das geht bestimmt irgendwie, aber mit Matrizen kenn ich mich nicht wirklich aus...
Danke schonmal, ich hoffe mal mich hat jemand verstanden... Martok
Ich habe einen Punkt in einer schon ein Paar mal gedrehten Matrix (glRotate/glTranslate)
Ich glaube Du bist noch nicht so ganz durchgestiegen... Jedenfalls ist ein Punkt nur ganz selten in einer Matrix - man muss schon etwas sehr besonderes meinen, um sagen zu können, der Punkt befindet sich in der Matrix Jedenfalls ist eine Matrix ein Konstrukt aus Zahlen - bei OpenGl sind es immer 16 stück. Wenn man nun eine Matrix auf einen Punkt anwendet, multipliziert man die Matrix mit dem Punkt und am Ende bekommt man den Punkt entsprechend verschoben und gedreht wieder heraus. Siehe auch:
http://wiki.delphigl.com/index.php/Matrix http://wiki.delphigl.com/index.php/Tutorial_Nachsitzen
Wenn ich Dich also richtig verstanden hab, solltest Du mit glGet Dir die Modelview-Matrix holen und dann Matrix-Multiplikation mit dem Punkt durchführen.
Registriert: Mo Mai 29, 2006 21:13 Beiträge: 142 Wohnort: Ballenstedt/Sachsen-Anhalt
Naja....nicht in.
Eher in einem vermittels einer Matrix ein paar mal verändertem Koodrinatensystem. Das ich nicht durchgestiegen bin, stimmt aber trotzdem
Wobei das hier fast ein Fall von Wäldern und Bäumen sein kann. Klar muss ich nix mehr machen nach dem Projizieren des Punktes... so im Nachhinein könnte das fast schon peinlich sein...
Aber.... wenn ich (0,0,0) als Punkt habe... dann bleibt nur die '4. Spalte' der Matrix über, richtig? Also die, die dann mit w (bei mir 1.0) multipliziert wird?
Aber.... wenn ich (0,0,0) als Punkt habe... dann bleibt nur die '4. Spalte' der Matrix über, richtig? Also die, die dann mit w (bei mir 1.0) multipliziert wird?
Wenn du den Punkt (0,0,0) nach der Matrix-Multiplikation betrachten willst, dann bleibt tatsächlich einfach die letzte Spalte - Du bracuhst also noch nicht mal rechnen, die letzte spalte ergibt von oben nach unten gelesen die koordinaten (x,y,z,w) - aber achtung, OpenGl organisiert seinen Matrizen im Speicher Zeilenweise, du hast also effektiv die letzte Zeile der Matrix zu lesen, aber das dürftest du bereits im Wiki entdeckt haben.
Mitglieder in diesem Forum: 0 Mitglieder und 26 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.