Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

glrotatef und gltranslatef

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
pebisoft
gesperrt


Anmeldungsdatum: 28.11.2004
Beiträge: 131

BeitragVerfasst am: 24.09.2006, 18:11    Titel: glrotatef und gltranslatef Antworten mit Zitat

ich stelle eine körper da, den ich mit milkshape angefertigt habe.
das unten ist die routine. erst rotiere ich dann translate.
soweit so gut. der körper geht immer in die richtung , wo er hinrotiert ist.
bloss der drehradius wird immer grösser, dies möchte ich verhindern.
wie kann man rotationspunkt immer wieder auf 0 setzen.

ich möchte diese vorwärtsbewegung beibehalten, weil die sich schön nach den drehwinkle richtet. bloss ich muss immer wieder den mittleren drehpunkt haben, damit der körper wieder um sich selber dreht im nullpunkt des körpers.

glRotatef s,0, 1, 0
glTranslatef x,0,0
Model_Draw (@MilkShapeModel)


mfg
pebisoft
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Stormy



Anmeldungsdatum: 10.09.2004
Beiträge: 567
Wohnort: Sachsen - wo die schönen Frauen wachsen ;)

BeitragVerfasst am: 24.09.2006, 18:31    Titel: Antworten mit Zitat

Mach das wie folgt:

Code:

glPushMatrix ' Matrix auf dem Stack speichern
' Hier kommen die ganzen Befehle von dir hin, die die aktuelle Matrix ändern.
' zB.: gltranslate, glrotatef
glPopMatrix ' Matrix vom Stack wieder laden


Im Vergleich zu glLoadIdentity wird somit nicht der absolute Ausgangszustand wiederherstellt, sondern nur der eben zuletzt genutzte Zustand.
_________________
+++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
pebisoft
gesperrt


Anmeldungsdatum: 28.11.2004
Beiträge: 131

BeitragVerfasst am: 24.09.2006, 19:47    Titel: Antworten mit Zitat

das unten ist der steurcode für den körper.
"a" und "s" ist dür das drehen und "e" und "d" für vorwärts und rückwärts.
es funktioniert alles soweit. nur der mittelpunkt(drehpunkt) wandert bei vorwärts oder rückwärts immer weiter raus.
oder kann man es mittels sinus und cosinus lösen. wer hat den davon kenntnis?

ich habe dein code(danke nochmals) schon reingesetzt, funktioniert nicht, der körper bleibt dann stehen.

Code:

do
      glClear GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT 
      glLoadIdentity                                     
      gluLookAt 75, 75, 75, 0, 0, 0, 0, 1, 0 
       
        IF MULTIKEY(SC_A) THEN
            d+=1
            if d>360 then d=0
        end if 
        IF MULTIKEY(SC_S) THEN
            d-=1
            if d<0 then d=360
        end if 
        IF MULTIKEY(SC_E) THEN
            x+=1
        end if 
        IF MULTIKEY(SC_D) THEN
            x-=1
        end if 
        IF MULTIKEY(SC_Y) THEN
            x=0: d=0
        end if 
       
        glRotatef d,0, 1, 0
        glTranslatef x,0,0
      Model_Draw (@MilkShapeModel)                     
        glLoadIdentity 
                                 
      flip
       
      WindowTitle "x="+str$(d)+"     z="+str$(x)
   loop while MULTIKEY(SC_ESCAPE) = 0


   end
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz