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

Aktuelle Zeit: Fr Jul 18, 2025 12:29

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



Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Bewegen bei OpenGL
BeitragVerfasst: Di Jun 10, 2008 12:30 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Apr 09, 2008 16:28
Beiträge: 52
Wohnort: Münster
Hi :)
Ich habe ein kleines Problem :
bei meiner Map möchte ich mich gerne frei bewegen können.
Vprwärts und rückwärts funktioniert (mit Tastenabfragen).
Ich möchte aber dann noch die Möglichkeit haben mich seitwärts zu drehen (nicht zu bewegen)
D.h. : wenn ich mich an einem Punkt befinde und z.B. die linke Pfeiltaste drücke dann soll sich die Map nach rechts ( sieht aus als ob ich mich nach links drehen würde) um meine aktuelle Position drehen.
Wenn ich aber einfach glrotatef verwende dann dreht sich die Map aus irgenteinem Grund um den Punkt von dem aus ich ganz am Anfang des Programms gesatrtet bin! :roll: Obwohl ich mich doch gar nicht bewegt habe sondern die Map sich um mich bewegt!!!
Kann mir jemand bitte erklären wie ich diesen Punkt so verlegen kann, dass die Map sich wirklich um MEINE Position dreht und nicht m irgenteine andere.
Ich würde mich sehr über viele Antworten freuen :D
MFG

_________________
"Sometimes it pays to stay in bed on Monday, rather than spending the rest of
the week debugging Monday's code."
-- Dan Salomon


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 10, 2008 16:14 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Hallo DK99,
Es gibt dazu im Wiki eine wirklich gute mit Bildern unterlegte Erklärung: http://wiki.delphigl.com/index.php/Tutorial_Matrix2.

Lass Dich nicht davon abschrecken, dass es sich im Tutorial um Matrizen dreht, sondern ruf das Tutorial mal auf und blätter ein wenig runter bis zur Überschrift:
>>Auswirkungen von Matrixmanipulationen - oder "Wie positioniere ich meine Objekte richtig?"<<

Es geht hier nämlich schlicht darum, was glTranslate/glRotate eigentlich machen. Ein wenig weiter unten sind auch Kombinationen von glTranslate/glRotate erklärt. Es wird Dir wirklich weiterhelfen. Die Burschen, die das dokumentiert haben, haben ganze Arbeit geleistet.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 10, 2008 16:49 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Du sprichst von mir in der Mehrzahl. Ich fühl mich fast geehrt. ;)

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 10, 2008 16:56 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Tut leid, ich habe nicht in der History nachgesehen. Und wenns auch nicht hierhergehört: Das hast Du wirklich gut gemacht.
Traude


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 11, 2008 07:57 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Apr 09, 2008 16:28
Beiträge: 52
Wohnort: Münster
OK vielen Dank dann schau ich mir das mal an......
Sieht wirklich gut aus :lol:
Ma schaun ob ich das verstehe.

_________________
"Sometimes it pays to stay in bed on Monday, rather than spending the rest of
the week debugging Monday's code."
-- Dan Salomon


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jun 14, 2008 21:43 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Apr 09, 2008 16:28
Beiträge: 52
Wohnort: Münster
Ja ok also ganz ehrlich:
Das hilft mir jetz nich wirklich :(
Was da steht is ja schön geschrieben aba da steht leider nur das was ich schon weiß :(:(
Der Teil den ich nicht verstehe fehlt leider (nja gehört ja auch nich wirklich dahin ;) )
Und zwar ist mein Problem eben ,dass sich bei glrotatef() das Koordinatensystem mitverschiebt. Wenn ich bei meinem Spiel nach rechts gehe (also die Map nach links drehe) , dann möchte ich ja in diese Richtung gehen. Dafür müsste ich mich also in die z- Richtung des alten Koordinaten Systems bewegen, (geht aba nicht weil durch glRotatef() ja das alte nicht mehr da ist.
Ich muss also umrechnen was bei einem bestimmten Drehwinkel eine Strecke auf der z- Achse des alten Koordinatensystems nun auf dem neuen Koordinatensystem für Bewegungen auf der x und z- Achse erforderlich sind.
Dafür brauch ich irgentwelche Formeln auf die ich leider noch nicht gekommen bin :(
(Hab schon vieles auprobiert sinus, Pythagoras usw. aba kein Erfolg :( )
Wenn mir da jemand bald helfen könnte wär das echt super :)
Ich brauch das nämlich für nen Informatik Projekt.
Wenn jemand von euch schonmal ein Programm programmiert hat bei dem man sich frei auf der Map bewegen kann müsste er das ja wissen.
Hoffentlich gibts da welche :):)
MFG

_________________
"Sometimes it pays to stay in bed on Monday, rather than spending the rest of
the week debugging Monday's code."
-- Dan Salomon


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jun 15, 2008 10:32 
Offline
DGL Member

Registriert: Di Jun 06, 2006 09:59
Beiträge: 474
Du hast doch üblicherweise ein Weltkoordinatensystem. In dem kannst du dich(zumindest wenn die Bewegung kein Flugzeug sonderen ein an den Boden gebundenes Objekt beschreibt) mit
DeltaX=cos(Angle)*Speed*DeltaT
DeltaY=-sin(Angle)*Speed*DeltaT
(vorzeichen hängt von deinem genauen Koordinatensystem ab)

Um das dann darzustellen fängst du jedes Frame wieder mit glLoadIdentity an, und bewegst die Szene so wie du willst.

_________________
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jun 15, 2008 10:52 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Apr 09, 2008 16:28
Beiträge: 52
Wohnort: Münster
Äähm könntest du mir das mal erklären?
Ich ersteh diese Rechnungen nicht.
Und mit glloadIdentity fang ich natürlich jedes Mal an (sonst würde man ja gar nichts sehen).
MFG

_________________
"Sometimes it pays to stay in bed on Monday, rather than spending the rest of
the week debugging Monday's code."
-- Dan Salomon


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jun 15, 2008 11:00 
Offline
DGL Member

Registriert: Di Jun 06, 2006 09:59
Beiträge: 474
Du hast deine Spielfigur, die eine Richtung zeigt und an einem Ort steht. Diese Spielfigur kannst du mit der genannten Formel bewegen, vollkommen unabhängig von OpenGL. Wenn du nun eine first person Kamera hast, dann bewege die erst mit Translate zur Figur, und führe dann ein Rotate aus um in die selbe Richtung wie die Einheit zu sehen
edit: Hab die Reihenfolge glaube ich mal wieder vertauscht

_________________
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jun 15, 2008 18:16 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Hallo DK99,
Was Dir The-Winner hier vorschlägt, ist nichts Exotisches. So oder so ähnlich macht das auch Jan Horn in seiner >>Basic 3D Engine<< wo Du Dir den Sourcecode herunterladen kannst, siehe http://www.sulaco.co.za/opengl.htm, auf dieser Seite das vorletzte Projekt.
Traude


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 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:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 15 Queries | GZIP : On ]