Registriert: Sa Jan 21, 2012 15:35 Beiträge: 3
Programmiersprache: C/C++
ich würde gerne meine grafik um 90 Grad dehren.
Code:
glRotatef(rotate,0.0f,0.0f,1.0f);
damit klappt das wunderbar, jedoch ist der punkt um den gedreht wird links unten in der ecke. ich würde ihen aber gerne um den punkt 320/240 drehen lassen (bei 640x480 Auflösung) also mittig.
mit
Code:
glTranslatef(320.0f,240.0f,0.0f);
dreht er zwar mittig, verschiebt mir aber auch das ganze bild mit nach rechts oben.
wie kann ich nur den dreh winkel neu positionieren, ohne das meine ganze szene verschoben wird?
Registriert: Di Dez 27, 2005 12:44 Beiträge: 393 Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
Hallo tomtom,
nur zum Verständnis: mit den Befehlen "glRotatef" und "glTranslatef" wird deine Szene noch nicht wirklich "gedreht", sondern nur eine Matrix berechnet, die sogenannte Modelview-Matrix. Du kannst also ohne Bedenken glTranslatef zweimal aufrufen: einmal um den Drehmittelpunkt zu verschieben und dann nochmal in entgegengesetzte Richtung, um zur Ausgangsposition zurückzukehren.
Also in etwa so:
Code:
glTranslatef(320.0f,240.0f,0.0f);
glRotatef(rotate,0.0f,0.0f,1.0f);
glTranslatef(-320.0f,-240.0f,0.0f);
Viele Grüße dj3hut1
_________________ Wenn Gauß heute lebte, wäre er ein Hacker. Peter Sarnak, Professor an der Princeton University
Registriert: Mi Jul 15, 2009 20:48 Beiträge: 111 Wohnort: Berlin
Programmiersprache: Delphi,JS,PHP,AS3,C#
naja, wenns darum geht den 0/0 punkt wieder zu verschieben.. dann aber translate(y,x), also vertauschen, wir haben ja vorher um 90° gedreht. und vill das ein oder andere minus. bin müde^^
_________________ thanks to the internet we have rule 34, wich states that if something exists, theres a pornographic version of it,
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Man macht die selben Operationen in umgekehrter Reihenfolge in die Gegenrichtung. Thats all.
@Threadersteller: Wenn du eine Text um 90° drehen willst, dann wechselst du entweder kurz in die Texturmatrix und machst dort glRotate, oder aber du bindest die entsprechend anders von anfang an.
Niemand zwingt einen die linke untere Ecke der Textur auf die Linke untere Ecke eines Quads zu binden.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Mitglieder in diesem Forum: 0 Mitglieder und 11 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.