# How to translate in an eclipse motion?

I am working on a 2d solar system which I have completed. It is just a top down view of the solar system with circular planets and eclipse shaped orbits. Now I am trying to animate it so the planets follow the eclipse orbits. I have figured out how to do simple animation but having trouble figuring a formula to be able to use glTranslatef() to follow the same orbit eclipse. I figure there has to be some how I can tie it into my eclipse function. Below is the calls to the eclipse function as well as the eclipse function itself. Thanks for any direction you can provide!

``````
ellipseMidpoint (xc, yc, 155, 207);
ellipseMidpoint (xc, yc, 238, 317);
ellipseMidpoint (xc, yc, 480, 640);
ellipseMidpoint (xc, yc, 753, 1003);

``````
``````
void ellipsePlotPoints (int xCenter, int yCenter, int x, int y)
{
setPixel (xCenter + x, yCenter + y);
setPixel (xCenter - x, yCenter + y);
setPixel (xCenter + x, yCenter - y);
setPixel (xCenter - x, yCenter - y);
}

void ellipseMidpoint (int xCenter, int yCenter, int Rx, int Ry)
{
int Rx2 = Rx * Rx;
int Ry2 = Ry * Ry;
int twoRx2 = 2 * Rx2;
int twoRy2 = 2 * Ry2;
int p;
int x = 0;
int y = Ry;
int px = 0;
int py = twoRx2 * y;

/* Plot the initial point in each quadrant. */
ellipsePlotPoints (xCenter, yCenter, x, y);

/* Region 1 */
p = ceil (Ry2 - (Rx2 * Ry) + (0.25 * Rx2));
while (px < py) {
x++;
px += twoRy2;
if (p < 0)
p += Ry2 + px;
else {
y--;
py -= twoRx2;
p += Ry2 + px - py;
}
ellipsePlotPoints (xCenter, yCenter, x, y);
}

/* Region 2 */
p = ceil (Ry2 * (x+0.5) * (x+0.5) + Rx2 * (y-1) * (y-1) - Rx2 * Ry2);
while (y > 0) {
y--;
py -= twoRx2;
if (p > 0)
p += Rx2 - py;
else {
x++;
px += twoRy2;
p += Rx2 - py + px;
}
ellipsePlotPoints (xCenter, yCenter, x, y);
}
}

``````