Animating a 3D car in PyOpenGL

I’m trying to animate a 3D car in PyOpenGL to make it move along an eight-shaped track. The problem is that I don’t seem to find the best way to make the car turn along the curve of the track.

The way that I’ve tried is making the car translate over the x and z axis, as well as making a glRotate to rotate the car, but that doesn’t seem like the best way to do it.

My code looks like this:


# Values for all the animation process, including translate and rotate
angulo = 0.0
traslacion = 0.0
giroXl = 0.0
giroZl = 0.0

 ...

 # The display function, where the 3D car model recieves the instructions for 
 # the movement along the track
 def display():

     ...

     glTranslate(0, 0, traslacion)  # Moves the car along a straight line, this works just fine

     # This is where I try to turn the car along the track curve, this is where I'm stuck
     if bandRecta == True:
        glTranslate(giroXl, 0, giroZl)
        glRotate(angulo, 0.0, 1.0, 0.0)

     ...

 # The glutTimerFunc, where the values get manipulated
 def movimiento():

     ...

     angulo = angulo + (1.0 if angulo < 180.0 else 0.0)
     traslacion = traslacion + (1.0 if traslacion < 100.0 else 0.0)

     if traslacion == 50:
          bandRecta = True 
          giroXl = giroXl + (1.0 if giroXl < 50.0 else 0.0)
          giroZl = giroZl + (1.0 if giroZl < 50.0 else 0.0)


For the record, I’m using Python 3.5 with PyOpenGL (obviously) and GLUT.