David,

You don’t need to use quaternions to do what you want, particularly if the car will only be rotating in a plane.

Vector v = car’s current orientation

Vector d = car’s desired orientation

Taking v cross d will give you a third vector, call it axis, that you will want to rotate the car around.

Recall that the dot product of two vectors is: v dot d = |v| * |d| * cos(theta) where theta is the angle between the two vectors. So, to get your angle, take v dot d, divide by the product of their lengths, and then take the acos of this number.

Finally, to rotate the car, you can build a matrix yourself or use glRotatef(theta, axis.x, axis.y, axis.z). Don’t forget to normalize your axis vector and convert theta to degrees.

I hope this is what you meant and I’m not over simplifying your problem

Zeno