Ich kam irgentwie auf die Idee mich mal mit OpenGL zu beschäftigen und als Einstiegsprojekt wollte ich einen durchsichtigen Würfel erstellen, den man mit der Maus drehen kann. Dann hab ich hier mal im Forum geguckt und hier wurde schon ein Problem mit dem erstellen eines Würfels geschildert und ich habe mir gedacht, mach doch erstmal einen Würfel aus 12 Linien. Da wir gerade erst in der Schule angefangen haben uns mit Delphi zu beschäftigen sind meine Kenntnisse auch hier nicht sehr ausgeweitet und ich hatte erst so meine Probleme mit dem Einbinden eurer dglOpenGL Unit. Die Tutorials haben mir aber sehr weiter geholfen (dickes Lob!) und ich hab mich dann an den eigentlich OpenGL-Teil begeben.
Gezeichnet wird auf das Formular und der Würfel soll bei Programmstart in der Mitte sein. Man sollte dann mit der Maus den Würfel, ähnlich wie Google Earth drehen können, überlegt hatte ich mir hier die Koordinaten vom Ereignis MouseDown und MouseUp zu nehmen und sie zu Subtrahieren, es wird dann zwar erst nach dem MouseUp verschoben, aber etwas anderes ist mir nicht eingefallen.
Hier dann zwei Fragen:
Wie bekomme ich den Würfel in die Mitte und wie bleibt er beim drehen auf der Stelle?
Wie bekomme ich die Mauskoordinaten von Pixeln in die Einheiten, die OpenGl benutzt? (Im Forum habe ich nur von Einheiten in Pixeln gefunden)
Gibt es eine andere Möglichkeit den Würfel direkt mit der Mausbewegung zu verschieben?
Ich hoffe man konnte es lesen und einigermaßen verstehen.
Also ich hab das bei nem Programm von mir auch mit OnMouseDown gemacht, hab keine AHnung was in dem tut steht aber ich kann ja mal eben hier reinkopieren wie es bei mir aussieht (übrigens dreht er in Echtzeit und nicht erst nachdem man loslässt)
Ich habe das ganze geschreiben als ich mit 3D Sachen noch nicht viel Erfahrung hatte, vielleicht geht es auch viel einfacher, hoffe das alles bei ist was du brauchst, wenn es Verständnisprobleme gibt frag nach, dann schau ich nochmal wie das genau funzt.[/pascal]
Registriert: Mo Jan 31, 2005 11:02 Beiträge: 432 Wohnort: Rheinlandpfalz
Hi,
ich habe das ähnlich wie gucky auch im MouseMove gemacht (Echtzeit). Wobei ich meine Methode für weniger kompliziert halte. Vorweg: Du brauchst 3 globale (oder in der Private-Section der Form-Klasse) deklarierte Array-Variablen. Einmal für die Mouse-Position, einmal für den Status, welche Maustaste gedrückt ist, und dann noch die letztendliche Rotation:
Erstmal vielen Dank für die Lösungsansätze, aber ich habe im Moment wenig Zeit mich damit zu beschäftigen, werde in ein paar Tagen darauf zurückkommen und bestimmt ein paar Fragen haben.
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.