Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mo Jul 07, 2025 23:20

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Fr Okt 26, 2007 10:28 
Offline
DGL Member

Registriert: Mi Mär 28, 2007 17:45
Beiträge: 131
Ich dachte, ich hätte es halbwegs im Griff, aber dann hakt es doch wieder. Das leidige Thema: Objekt um die eigene Achse drehen.

Vor dem Zeichnen der Szene wird die Sicht in der Modelview-Matrix eingestellt:

Code:
  1. procedure UpdateView;
  2. begin
  3.     glRotatef (-vpitch, 1.0, 0.0 , 0.0);
  4.     glRotatef (-vhead, 0.0, 1.0 , 0.0);
  5.     glTranslatef (-xview, -yview, -zview);     
  6. end;


Nun sollen Objekte gezeichnet und an Ort und Stelle verschieden gedreht werden, hier einfache Alpha-Texturen, die doppelt (gekreuzt) gezeichnet werden:

Code:
  1. procedure DrawObject (x, y, z: Single);
  2. begin
  3.     glPushMatrix;
  4.     glBegin (GL_QUADS);
  5.         glTexCoord2f (0, 0); glVertex3f (x-0.5, y, z);
  6.         glTexCoord2f (1, 0); glVertex3f (x+0.5, y, z);
  7.         glTexCoord2f (1, 1); glVertex3f (x+0.5, y+1, z);
  8.         glTexCoord2f (0, 1); glVertex3f (x-0.5, y+1, z);
  9.     glEnd;
  10.    
  11.     glBegin (GL_QUADS);
  12.         glTexCoord2f (0, 0); glVertex3f (x, y, z-0.5);
  13.         glTexCoord2f (1, 0); glVertex3f (x, y, z+0.5);
  14.         glTexCoord2f (1, 1); glVertex3f (x, y+1, z+0.5);
  15.         glTexCoord2f (0, 1); glVertex3f (x, y+1, z-0.5);
  16.     glEnd;
  17.     glPopMatrix;
  18. end;


Soweit alles ok, das Problem beginnt beim Drehen. Wenn ich da ein glRotate reinbringe, dann wird um alles mögliche gedreht, nur nicht um die Objektachse. Kann ja auch nicht, denn der Drehpunkt wurde ja in UpdateView verschoben. Wie kann ich den Drehpunkt auf die Objektposition fixieren, ohne dass die View-Einstellungen ignoriert werden?

Anmerkung: Es funktioniert, wenn ich UpdateView auf die Projektions-Matrix ansetze, aber das möchte ich aus verschiedenen Gründen nicht.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Okt 27, 2007 09:46 
Offline
DGL Member

Registriert: Mi Mär 28, 2007 17:45
Beiträge: 131
Hat sich erledigt, ein dummer Programmierfehler. Wenn ich glRotate verwende, muss in in diesem Fall ja wohl mit lokalen Parametern arbeiten, also ein glTranslate davorsetzen. Das hatte ich zwar auch schon ausprobiert, dabei aber auf einen falschen Parameter zurückgegriffen. Kein Wunder, dass niemand eine Antwort auf meine Frage parat hatte ...

Ich bitte um Nachsicht


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 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.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]