wenn ich meine WorldMatrix mit glTranslate's, glRotate's, glScale's etc schön hin und herschiebe... kann ich dann irgendwie die Matrix so verändern das nurnoch die Rotation übrig ist???
Also das die X, Y, Z Position wieder bei 0,0,0 und die Scaierung auch wieder 1,1,1 ist.. nur halt die Rotation soll beibehalten werden
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Schon mal an glPushMatrix und glPopMatrix gedacht? <!--pas--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Delphi-Source </td></tr><tr><td id='CODE'><!--pas1--><pre>glRotatef(...); glPushMatrix; glTranslatef(...); glScalef(...); ... glPopMatrix; </pre><!--pas2--></td></tr></table><span class='postcolor'><!--pas3--> Einfacher gehts nicht, es sei denn du speicherst deine Skalierungen bzw. Verschiebungen irgendwo...das wäre dann so zu machen : <!--pas--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Delphi-Source </td></tr><tr><td id='CODE'><!--pas1--><pre> glRotatef(myRotation); glTranslatef(myTrasnlation); glScalef(myScale); ... glRotatef(-myRotation); glTranslatef(-myTrasnlation); glScalef(-myScale); </pre><!--pas2--></td></tr></table><span class='postcolor'><!--pas3-->
Die ersten 3 Spaltenvektoren normalisieren und die letze Spalte und Zeile auf 0,0,0,1 setzen. Die Spaltenvektoren enthalten ja die Kantenvektoren des neuen Koordinatensystems und die Länge dieser Vektoren ist die Skalierung.
Ein Vektor dessen Komponenten aus einer Spalte der Matrix bestehen. Das wäre hier z.B. der Vektor (0,1,2,3). Die Verschiebung ist der Vektor (12,13,14) und die Rotation und Skalierung wird durch die 3x3 Matrix aus den ersten 3 Zeilen und Spalten beschrieben.
Mitglieder in diesem Forum: 0 Mitglieder und 3 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.