PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Stop Rotation (OpenGL)


Gast
2004-12-08, 09:11:04
Hey
Ich habe mit OpenGL einen Würfel kreiert. Er rotatiert auch sehr schön. Aber wie kann ich die Rotation stoppen?

Hier die Funktion, die mit glutIdleFunc aufgerufen wird.

def DrawGLScene():
global rotX,rotY,rotZ
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
glLoadIdentity()
glTranslatef(0.0,0.0,-5.0)
glRotatef(rotX,1.,1.,0.)
glRotatef(rotY,0.,1.,1.)
glRotatef(rotZ,1.,0.,1.)
glEnable(GL_TEXTURE_2D)
#->Arrays definieren und Zeichnen
glEnableClientState(GL_TEXTURE_COORD_ARRAY) #Tex-Koordinaten-Arrays aktivieren
for i in range(6):
glBindTexture(GL_TEXTURE_2D, texturenIDs[i])
glVertexPointerf(dice_koor[i]) #neues Koordinaten-Arrays
glEnableClientState(GL_VERTEX_ARRAY) #Koordinaten-Array aktivieren
glDrawArrays(GL_POLYGON, 0, 4) #Arrays Zeichen
glDisableClientState(GL_VERTEX_ARRAY) #Koordinaten-Arrays deaktivieren
glDisableClientState(GL_TEXTURE_COORD_ARRAY) #Farb-Arrays deaktivieren
#<-
glFlush()
rotX += 1.5 # X rotation
rotY += 1.2
rotZ += 0.4
glutSwapBuffers()

Gast
2004-12-08, 10:22:12
Aufhören rotX,rotY,rotZ hochzuzählen.

Chris Lux
2004-12-08, 17:29:41
sorry... passte ned ganz

marco42
2004-12-08, 23:36:35
Hey
Ich habe mit OpenGL einen Würfel kreiert. Er rotatiert auch sehr schön. Aber wie kann ich die Rotation stoppen?

Hier die Funktion, die mit glutIdleFunc aufgerufen wird.

def DrawGLScene():
global rotX,rotY,rotZ
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
glLoadIdentity()
glTranslatef(0.0,0.0,-5.0)
glRotatef(rotX,1.,1.,0.)
glRotatef(rotY,0.,1.,1.)
glRotatef(rotZ,1.,0.,1.)
glEnable(GL_TEXTURE_2D)
#->Arrays definieren und Zeichnen
glEnableClientState(GL_TEXTURE_COORD_ARRAY) #Tex-Koordinaten-Arrays aktivieren
for i in range(6):
glBindTexture(GL_TEXTURE_2D, texturenIDs[i])
glVertexPointerf(dice_koor[i]) #neues Koordinaten-Arrays
glEnableClientState(GL_VERTEX_ARRAY) #Koordinaten-Array aktivieren
glDrawArrays(GL_POLYGON, 0, 4) #Arrays Zeichen
glDisableClientState(GL_VERTEX_ARRAY) #Koordinaten-Arrays deaktivieren
glDisableClientState(GL_TEXTURE_COORD_ARRAY) #Farb-Arrays deaktivieren
#<-
glFlush()
rotX += 1.5 # X rotation
rotY += 1.2
rotZ += 0.4
glutSwapBuffers()


Its das python? hab PyOpenGL nie compiliert bekommen. du kannst doch einfach:

if do_rotate:
rotX += 1.5 # X rotation
rotY += 1.2
rotZ += 0.4

machen. die do_rotate ist eine boolean variable, die du setzt, zB mit einem key.