OpenGL: X,Y und Z drehen
-
tja, was soll ich sagen, dass mache ich ja, find ich aber doof hätte lieber eine andere lösung, und ich weiß, dass es eine gibt! ich kenne mehrere programme, die die lösung anwenden...
-
Dann kopiere diese Methode von den Programmen ...
*witz* oder kauf dir eine 3D-Maus /witz
M.T.
-
Hallo,
also ich habe mir mal die Steuerung von Milkshape angesehen (was andres hatte ich nicht da). Da wird beim nach rechts und links bewegen der Maus um die Y-Achse gedreht, und beim nach oben und unten bewegen um die X Achse der Kamera (also der Right-Vektor). Mit der Steuerung kann man alle rotationen erreichen, also das objekt von allen seiten sehen.
Hoffentlich hilft das etwas ...
-
ne, leider nicht wirklich, aber der dreht auch nicht nur um x und y, sondern auch um z! aber trotrdem danke
meiner meinung nach müsste man nach jeder drehung (also jedesmal, wenn die links mousetaste neu gedrückt wird) eine neue ebene erstellen, das objekt also als neue ebene ansehen...kann es aber nicht umsetzen, schade eigentlich
ist hier denn kein opengl spezi der mein problem versteht
-
Mal ne ganz andere Sache - was hat das eigentlich mit OGL zu tun? Das benutzt du doch nur zum Anzeigen. Deine Frage ist eigentlich ganz allgemeines Interface-Design.
M.T.
-
Hi, ihr könnt ja mal unter folgenden Links das Programm anschauen. Vielleicht ist dann auch deutlicher, was das Problem ist. Am deutlichsten wird es beim Motiv bjoern.cad.
-
Die Dateien sind beschädigt ... sagt zumindet WinRAR
M.T.
-
-
[scherz]Wenn du jetzt noch Morphing einbaust hast du ne super Grafikdemo ;)[/scherz]
1. Warum flimmert das so grausam?
2. Warum bleibt immer die voherige Ansicht bestehen, bis man mit LMT bestätigt?
3. Warum kann man L+R MT gleichzeitig benutzen (cooler Effekt)?Auf Frage 3 bezogen - du könntest prüfen, welche Taste zuerst gedrückt wurde und dann, wenn die jeweils andere MT zusätzlich gedrückt wird, auf die Z-Achse umschalten.
M.T.
-
also zu deinen fragen:
1. bis jetzt hatte ich noch nicht gemerkt, dass es grausam flimmert! habe es schon auf einigen rechnern getestet, aber da geht es eigentlich...
2. verstehe die frage nicht so ganz, aber man kann das objekt (in dem fall "bjoern") nur mit gedrückter LMT bewegen...
3. Das ist eigentlich so gewollt, also dass man auch alle drei tasten gleichzeitig benutzen kann...ich bin aber auch kein profi. ist das erste mal, dass ich mit opengl gearbeitet habe...daher sind bugs bzw. fehler zu entschuldigen
-
Das könnte daran liegen, dass du den BackBuffer nicht richtig löschst. Ich hab hier in der Firma einen uralten Intel-Grafik-Chip, der entschuldigt leider gar nichts, aber mit dem Teil findet man super Fehler in bestimmten grafischen Programmen ... ich kann dir auch mal nen Screen schicken (Mail-Adresse erforderlich)
M.T.
-
blubbermann2002@yahoo.de, gerade erstellt
-
Jetzt hab ich herausgefunden, woran das liegt - du malst die neue Ansicht immer auf einen Buffer - oder? Dann werden die beiden Buffer (der neue und der alte) immer abwechseld dargestellt - daher das Flimmern.
Deswegen ist es auch unmöglich dieses Bleiben der alten Ansicht auf einen Screen zu bringen.M.T.
-
Ich verstehe Dein Problem überhaupt nicht wirklich:
Mit LMT hoch-runter - drehst Du um die X-Achse
Mit LMT links-rechts - drehst Du um die Y-Achse (oder umgekehrt)Mit RMT hoch-runter - zoomst Du ran oder raus
Da kannst Du doch
Mit RMT links-rechts - um die Z-Achse drehen...!?!?
-
Hi!
Habe mein Problem leider immer noch nicht lösen können (habe mich auch erst um was anderes gekümmert)!
Jedoch bin ich nun schon einen Schritt weiter. Ich habe entdeckt, dass er auch um Z dreht, jedoch häng es davon ab, welche Rotierung ich als erste vornehme. Hier ein Beispiel.
glRotatef(angley,0.0,1.0,0.0); //Rotieren Y glRotatef(anglex,1.0,0.0,0.0); //Rotieren X
in diesem Fall rotiert er sämtliche Bewegungen, also mit der Mouse nach links oder rechts, korrekt.
schreibe ich es so:
glRotatef(anglex,1.0,0.0,0.0); //Rotieren X glRotatef(angley,0.0,1.0,0.0); //Rotieren Y
rotiert er sämtliche Bewegungen, also mit der Mouse nach oben oder unten, korrekt. Jetzt muss ich es nur unter einen 'Hut' bringen. Leider weiß ich nicht mehr weiter.