When dealing with animations, we call each image created by the display function a FRAME in the animation.
Also, as noted in the description of our display function star, the animation is created through varying the
radii on two concentric circles containing the vertices of our geometry. Thus, each frame is a little
different from the previous frame by a slight change in the radii. Further, the changes to the radii
are accomplished by varying count in the factor count/numberOfPartitions.
Since we want each radius to vary from 0.25 to 1.0 and back, count will vary between 0 and numberOfPartitions,
counting up by 1. When count reaches numberOfPartitions, count is then decrement by -1 back to zero.
Invoking the display function and updating count is the purpose of our animation function.
To generate frames continuously, we must repeatedly execute our animation function. In the example on using
an idle function we registered animation as the current idle function, which, in turn, continuously executes while
the event queue is empty. Now, in this example, we use recurion to achieve repeated execution. However, we do not
make a direct recursive call to animation but use glutTimerFunc to make the call after a given number of
milliseconds has lasped.