nochmal dazu wie ich eine Sphere mit der maus bewegen kann.
Damit hatte ich noch keinen Erfolg
Also ich erstelle meine "Erde" nun , das klappt.
Texturen geht nun auch.
Jetzt gehts nochmal dazum die Scene, also meine Sphere insgesammt zu bewegen.
Ich hab das OGL in einem Panel auf der Form.
Die Sphere ist bei 0,0,0 und jetzt haltet euch fest, die hat den Erdradius War einfach leichter so. Ändere ich vielleicht auch noch, aber jetzt gehts erst mal ums prinzip.
Ich hab schon alles mögliche versucht und hatte leider noch nicht den Durchbruch.
Also wie genau kann ich das machen ?
Wenn Ihr habt, bin noch neu, bitte mal ein kleines Beispiel wär echt genial !
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Siehst du deine Sphere? Wenn du nix siehst, dann liegt das darin, dass du innen bist. Und du ertsmal raus mustt.... Aber Ok das wa ja gar nicht deine Frage.
Zum Thema:
Das hat prinzipiell nix mit OGL zu tun. Das musst du schön per hand machen. Die Idee dahinter ist ganz einfach. Du reagierst auf die Mausevents die dir Delphi bzw. dein Panel liefert.
Also im OnMauseDown speicherst du die Mauskoordianten in einer Variable.
Im OnMausMove berechnest du aus den gespeicherten und den aktuellen Koordinaten die Mausbewegung und speicherst das ergebnis in einer neuen Variable.
Beim Zeichnen benutzt du nun die letzt gespeicherten Werte und verschiebst die Kugel per glTranslate.
Da die Mauskoords nur 2Dimensionen haben, du aber prinzipiell in 3Dimensionen verschieben kannst, musst du eventuell noch ne Taste vond er Tastatur mit benutzen (oder die rechte Maustaste als Signal für die 3.Dimension benutzen). D.h. Wenn Taste XYZ gedrückt wurde, dann wird die X-Verschiebung nicht auf die X, sondern auf die Z-Koordinaten addiert.
Das prinzip ist ganz nebenbei das selbe, wenn du statt verschiebung, deine Kugel drehen willst. Dann benutzt du die Differenzen einfach als Winkel für glRotate.
PS: Beispiele sind nie so lehreich, wie wenn man es selbst durchdenkt, und aus dem Nichts über viele irrwege am ende ans Ziel kommt.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
ich hab das jetzt so probiert mit der Mausposition.
Das geht zwar, aber jetzt stell dir mal folgendes vor :
Du klickst mit der Maus irgendwo hin, ok.
Jetzt willst Du das ganze nach links bewegen, geht auch.
Du hältst nun aber die maustaste gedrückt und willst nach rechts, dann gehts nicht mehr, denn dann
gehts weiter nach links oder ?
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Jo...
Aber das kann man abfangen.
Und zwar wir onMouse Move ja zyklisch immer wieder aufgerufen. Dann speicherst du den wert bei jedem OnMouseMove-Event genauso ab, wie beim OnMouseDown. (Natürlich nachdem du die Differenzen berechnet hast).
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Mitglieder in diesem Forum: Google [Bot] und 3 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.