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.
Nun möchte ich eine senkrechte Linie zeichnen und rufe deshalb
Code:
glRotatef(90, 0f, 1f, 0f);
auf. Nun sollte das Koordinatensystem ja so aussehen:
Wenn ich jetzt die Methode zum zeichnen der waagerechten Linie aufrufe sollte diese doch so eingezeichnet werden?!?
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 )
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.
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 .
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.
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.
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
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.