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

Aktuelle Zeit: Do Jul 17, 2025 06:28

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: bild um 90 Grad drehen
BeitragVerfasst: Mo Mär 12, 2012 09:47 
Offline
DGL Member

Registriert: Sa Jan 21, 2012 15:35
Beiträge: 3
Programmiersprache: C/C++
ich würde gerne meine grafik um 90 Grad dehren.


Code:
  1. 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:
  1. 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?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: bild um 90 Grad drehen
BeitragVerfasst: Mo Mär 12, 2012 10:45 
Offline
DGL Member

Registriert: Do Apr 22, 2010 17:17
Beiträge: 543
http://wiki.delphigl.com/index.php/Tutorial_Matrix2
das hier ist ziemlich aufschlussreich :lol:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: bild um 90 Grad drehen
BeitragVerfasst: Mo Mär 12, 2012 12:46 
Offline
DGL Member
Benutzeravatar

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:
  1. glTranslatef(320.0f,240.0f,0.0f);
  2. glRotatef(rotate,0.0f,0.0f,1.0f);
  3. 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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: bild um 90 Grad drehen
BeitragVerfasst: Mo Mär 12, 2012 18:27 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 15, 2009 20:48
Beiträge: 111
Wohnort: Berlin
Programmiersprache: Delphi,JS,PHP,AS3,C#
na dann kannst du auch push/pop verwedenen

glPushMatrix
glTranslate
glRotate
//rendern
glPopMatrix,


push nimmt die ausgangsmatrix und speichert sie auf nem stack, während pop die oberste matrix dieses stacks wieder herstellt

am besten, du ziehst dir tatsächlich nochmal die funktionsweise von rotate/translate rein

bei der lösung über mir müsstest du auch zurückdrehen, dh

translate
rotate
render
-rotate
-translate,

quasi!^^

_________________
thanks to the internet we have rule 34, wich states that if something exists, theres a pornographic version of it,


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: bild um 90 Grad drehen
BeitragVerfasst: Di Mär 13, 2012 23:07 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 27, 2005 12:44
Beiträge: 393
Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
@sirrk

das müsste eher so aussehen :

glPushMatrix
glTranslate
glRotate
-glTranslate
//rendern
glPopMatrix,


oder?

_________________
Wenn Gauß heute lebte, wäre er ein Hacker.
Peter Sarnak, Professor an der Princeton University


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: bild um 90 Grad drehen
BeitragVerfasst: Mi Mär 14, 2012 03:23 
Offline
DGL Member
Benutzeravatar

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,


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: bild um 90 Grad drehen
BeitragVerfasst: Mi Mär 14, 2012 14:48 
Offline
Guitar Hero
Benutzeravatar

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


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


Wer ist online?

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.

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