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

Aktuelle Zeit: Fr Jul 18, 2025 00:05

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



Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: glRotate
BeitragVerfasst: Do Mai 03, 2012 10:39 
Offline
DGL Member

Registriert: Do Mai 03, 2012 10:15
Beiträge: 6
Wohnort: Hannover
Programmiersprache: java
Hi,

ich habe eine Verständnisfrage zu glRotate. Ich arbeite im 2dimensionalen Raum und habe eine Methode für das zeichnen einer wagerechten Linie, welche hier die grüne Gerade darstellt.
Bild

Nun möchte ich eine senkrechte Linie zeichnen und rufe deshalb
Code:
  1. glRotatef(90, 0f, 1f, 0f);
auf.
Nun sollte das Koordinatensystem ja so aussehen:
Bild

Wenn ich jetzt die Methode zum zeichnen der waagerechten Linie aufrufe sollte diese doch so eingezeichnet werden?!?
Bild

Bei mir erscheint keine Ausgabe der senkrechten Linie, weshalb ich davon ausgehe, dass ich einen Gedankenfehler habe. (Oder der Fehler liegt irgendwo anders im Programm :roll: )


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glRotate
BeitragVerfasst: Do Mai 03, 2012 11:07 
Offline
DGL Member

Registriert: Sa Mär 14, 2009 17:48
Beiträge: 99
Programmiersprache: D, Java, C++
Du drehst 90° um die Y Achse, dann müsste X nach vorne/hinten Zeigen, also die alte Z-Achse. Um das von dir eingezeichnete zweite Koordinaten-System zu erhalten müsstest du um die Z-Achse drehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glRotate
BeitragVerfasst: Do Mai 03, 2012 11:15 
Offline
DGL Member

Registriert: Do Mai 03, 2012 10:15
Beiträge: 6
Wohnort: Hannover
Programmiersprache: java
Achsoo :idea: , ok, so funktioniert es.

Ich hatte mich zu sehr auf den 2dimensionalen Raum fixiert und z einfach ausser Acht gelassen :oops:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glRotate
BeitragVerfasst: Do Mai 03, 2012 11:18 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
Ah der Skeptiker war schneller...

@vistahr: Welche OpenGL Bibliothek nutzt du?

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glRotate
BeitragVerfasst: Do Mai 03, 2012 11:24 
Offline
DGL Member

Registriert: Sa Mär 14, 2009 17:48
Beiträge: 99
Programmiersprache: D, Java, C++
Das was du meinst ist die Projektion, du projizierst die Objekte aus dem 3 Dimensionalen Raum via "glOrtho" (vermutlich) auf den 2 Dimensionalen Bildschirm, alles was davor passiert bezieht sich aber sehr wohl auf 3 Dimensionen.

Schau dir einfach mal an wie OpenGL deine Geometry tatsächlich auf den Bildschirm bringt, dass ist sehr lehrreich :-).


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glRotate
BeitragVerfasst: Do Mai 03, 2012 11:53 
Offline
DGL Member

Registriert: Do Mai 03, 2012 10:15
Beiträge: 6
Wohnort: Hannover
Programmiersprache: java
Ich nutze LWJGL.

Im Modus GL_PROJECTION setz ich den Anzeigemodus via glOrtho auf 2D und schalte dann in den GL_MODELVIEW Modus um die Vertexdaten zu senden.

Darüber, dass das ganze nur ein 2D Anzeigemodus ist habe ich nicht wirklich nachgedacht. Ich hätte darauf geschlossen, dass hier auch nur 2D Operation möglich sind ... wieder ein bisschen schlauer.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glRotate
BeitragVerfasst: Do Mai 03, 2012 15:10 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
Nun es ist nicht wirklich 2D. OpenGL kennt im Grunde zwei Matrizen für die Kamera, Projektionsmatrix und Modelviewmatrix. Vereinfacht kann
man sagen das die Modelviewmatrix die Position deiner Objekte beeinflusst und die Projektionmatrix die "Blickrichtung" der einzelnen Pixel.
Bei Ortho wird die Blickrichtung der Pixel so gesetzt das jeder von ihnen einfach nach Vorne schaut, wodurch Objekte z.B. nicht kleiner werden
wenn sie weiter weg sind.

Ein anderes Beispiel für orthogonale Projektion wäre z.B. Isometrie.

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glRotate
BeitragVerfasst: Sa Jun 02, 2012 15:45 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Schau dir bezüglich der Grundoperationen unbedingt auch das Tutorial_Matrix2 im Wiki an. Da sind dann auch Bilder dabei. ;)

Edit: Die Reihenfolge und deren Unterschiedene im Ergebnis ist dort auch beschrieben.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glRotate
BeitragVerfasst: Di Jun 05, 2012 08:22 
Offline
DGL Member

Registriert: Do Mai 03, 2012 10:15
Beiträge: 6
Wohnort: Hannover
Programmiersprache: java
Ist das Rotationszentrum wirklich immer der Ursprung (0,0,0) oder kann es sein, dass es der Ursprung der Projektionsmatrix ist ?

Ich frage, da ich Probleme habe mein Objekt auf der Y-Achse zu rotieren.
Mein Vorgehen ist, dass ich den Schwerpunkt berechne, dann das Objekt auf den Nullpunkt schiebe, rotiere und dann wieder auf die Ursprungsposition zurücksetze.


(Das ganze diesmal 3D, also ohne Ortho!)


edit:
ok, hab das "Problem" gelöst. Erst rotate, dann translate ... böse Falle :oops:


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


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.010s | 16 Queries | GZIP : On ]